Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r58923 - in sandbox/numeric_bindings/boost/numeric/bindings: blas/level1 blas/level2 blas/level3 lapack lapack/auxiliary lapack/computational lapack/detail lapack/driver
From: rutger_at_[hidden]
Date: 2010-01-12 05:23:26


Author: rutger
Date: 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
New Revision: 58923
URL: http://svn.boost.org/trac/boost/changeset/58923

Log:
Added a number of auxiliairy routines, const args by value

Added:
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/langb.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lange.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhb.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhe.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhp.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhs.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansb.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansp.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansy.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantb.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantr.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larf.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfb.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfg.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larft.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfx.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/largv.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larnv.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larrb.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larre.hpp (contents, props changed)
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gejsv.hpp (contents, props changed)
Text files modified:
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/asum.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/axpy.hpp | 58 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/copy.hpp | 46 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dot.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dotc.hpp | 28 +-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dotu.hpp | 28 +-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/nrm2.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rot.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rotm.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rotmg.hpp | 15 +
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/scal.hpp | 38 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/sdot.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/swap.hpp | 46 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gbmv.hpp | 110 ++++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gemv.hpp | 92 +++++++-----
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/ger.hpp | 34 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gerc.hpp | 48 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/geru.hpp | 48 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hbmv.hpp | 56 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hemv.hpp | 56 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her.hpp | 36 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her2.hpp | 48 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpmv.hpp | 44 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr.hpp | 28 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr2.hpp | 44 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/sbmv.hpp | 36 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spmv.hpp | 32 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr2.hpp | 28 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/symv.hpp | 34 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr2.hpp | 32 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbmv.hpp | 64 ++++----
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbsv.hpp | 64 ++++----
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpmv.hpp | 52 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpsv.hpp | 52 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trmv.hpp | 62 ++++----
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trsv.hpp | 62 ++++----
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/gemm.hpp | 109 ++++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/hemm.hpp | 57 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/her2k.hpp | 50 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/herk.hpp | 38 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/symm.hpp | 95 +++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syr2k.hpp | 95 +++++++------
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syrk.hpp | 80 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trmm.hpp | 80 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trsm.hpp | 80 ++++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/bdsdc.hpp | 13
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/bdsqr.hpp | 40 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbbrd.hpp | 46 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp | 29 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbequ.hpp | 30 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbrfs.hpp | 52 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrf.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp | 34 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebak.hpp | 28 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebal.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebrd.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gecon.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geequ.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gehrd.hpp | 28 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gelqf.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqlf.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqp3.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqrf.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerfs.hpp | 49 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerqf.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getrf.hpp | 36 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getri.hpp | 44 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getrs.hpp | 50 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbak.hpp | 32 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbal.hpp | 30 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gghrd.hpp | 42 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggqrf.hpp | 35 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggrqf.hpp | 35 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp | 58 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gtrfs.hpp | 57 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gttrs.hpp | 35 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbgst.hpp | 20 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbtrd.hpp | 15 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hecon.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hegst.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/herfs.hpp | 27 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrd.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrf.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetri.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrs.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hgeqz.hpp | 54 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hprfs.hpp | 23 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hptrf.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hptrs.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hsein.hpp | 53 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hseqr.hpp | 38 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/labrd.hpp | 38 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/lacon.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/laebz.hpp | 27 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/larz.hpp | 118 ++++++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrd.hpp | 27 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrs.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrz.hpp | 20 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/opgtr.hpp | 10
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/opmtr.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgbr.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orghr.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orglq.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgql.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgqr.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgrq.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgtr.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormbr.hpp | 17 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormhr.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormlq.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormql.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormqr.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormrq.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormrz.hpp | 17 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormtr.hpp | 15 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp | 27 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbrfs.hpp | 46 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbstf.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrf.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrs.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftrf.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftri.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftrs.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pocon.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/poequ.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/porfs.hpp | 44 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potrf.hpp | 30 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potri.hpp | 30 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potrs.hpp | 44 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pprfs.hpp | 36 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrf.hpp | 10
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrs.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pteqr.hpp | 19 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ptrfs.hpp | 33 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pttrs.hpp | 23 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbgst.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbtrd.hpp | 13
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sprfs.hpp | 41 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrf.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrs.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stebz.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stedc.hpp | 32 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stegr.hpp | 48 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stein.hpp | 38 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stemr.hpp | 52 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/steqr.hpp | 19 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sterf.hpp | 4
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sycon.hpp | 25 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sygst.hpp | 10
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/syrfs.hpp | 49 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrd.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrf.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytri.hpp | 20 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrs.hpp | 28 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp | 26 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbrfs.hpp | 44 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbtrs.hpp | 30 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tftri.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp | 47 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp | 38 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp | 65 ++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp | 59 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsna.hpp | 56 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp | 60 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tprfs.hpp | 40 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tptri.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tptrs.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trcon.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trevc.hpp | 38 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trexc.hpp | 27 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trrfs.hpp | 37 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsna.hpp | 49 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsyl.hpp | 38 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trtri.hpp | 30 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trtrs.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tzrzf.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungbr.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unghr.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unglq.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungql.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungqr.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungrq.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungtr.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmbr.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmhr.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmlq.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmql.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmqr.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmrq.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmrz.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmtr.hpp | 16 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/upgtr.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/upmtr.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h | 281 ++++++++++++++++++++++++++++++++++++++++
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack_names.h | 118 ++++++++++++++++
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver.hpp | 1
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cgesv.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cposv.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsv.hpp | 32 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp | 58 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gees.hpp | 39 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp | 50 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geev.hpp | 39 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geevx.hpp | 49 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gegv.hpp | 42 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gels.hpp | 32 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsd.hpp | 40 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelss.hpp | 38 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsy.hpp | 39 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesdd.hpp | 36 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesv.hpp | 44 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvd.hpp | 40 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp | 51 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gges.hpp | 52 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggesx.hpp | 70 +++++----
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggev.hpp | 42 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp | 61 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp | 36 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gglse.hpp | 36 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggsvd.hpp | 54 ++++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsv.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsvx.hpp | 45 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbev.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevd.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgv.hpp | 20 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvd.hpp | 28 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp | 28 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heev.hpp | 13
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevd.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevr.hpp | 32 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevx.hpp | 28 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegv.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvd.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp | 30 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesv.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp | 28 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpev.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevd.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp | 21 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgv.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvd.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsv.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lacgv.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lalsd.hpp | 33 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/largv.hpp | 98 +++++--------
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsv.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp | 46 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posv.hpp | 42 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp | 49 +++---
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsv.hpp | 21 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp | 42 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsv.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp | 41 +++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbev.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevd.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp | 26 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgv.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvd.hpp | 22 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp | 27 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sgesv.hpp | 9
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spev.hpp | 9
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevd.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp | 17 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgv.hpp | 12
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvd.hpp | 16 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvx.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sposv.hpp | 7
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsv.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp | 38 ++--
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stev.hpp | 8
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevd.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevr.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevx.hpp | 19 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syev.hpp | 10
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevd.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevr.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevx.hpp | 24 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygv.hpp | 14 +
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvd.hpp | 18 +-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvx.hpp | 28 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysv.hpp | 32 ++-
   sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp | 52 +++---
   289 files changed, 5188 insertions(+), 4035 deletions(-)

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/asum.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/asum.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/asum.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,7 +60,7 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline float asum( int n, const float* x, int incx ) {
+inline float asum( const int n, const float* x, const int incx ) {
     return cblas_sasum( n, x, incx );
 }
 
@@ -69,7 +69,7 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline double asum( int n, const double* x, int incx ) {
+inline double asum( const int n, const double* x, const int incx ) {
     return cblas_dasum( n, x, incx );
 }
 
@@ -79,7 +79,7 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline float asum( int n, const float* x, int incx ) {
+inline float asum( const int n, const float* x, const int incx ) {
     return cublasSasum( n, x, incx );
 }
 
@@ -88,7 +88,7 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline double asum( int n, const double* x, int incx ) {
+inline double asum( const int n, const double* x, const int incx ) {
     return cublasDasum( n, x, incx );
 }
 
@@ -98,7 +98,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline float asum( fortran_int_t n, const float* x, fortran_int_t incx ) {
+inline float asum( const fortran_int_t n, const float* x,
+ const fortran_int_t incx ) {
     return BLAS_SASUM( &n, x, &incx );
 }
 
@@ -107,7 +108,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline double asum( fortran_int_t n, const double* x, fortran_int_t incx ) {
+inline double asum( const fortran_int_t n, const double* x,
+ const fortran_int_t incx ) {
     return BLAS_DASUM( &n, x, &incx );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/axpy.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/axpy.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/axpy.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,8 +60,8 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline void axpy( int n, float a, const float* x, int incx, float* y,
- int incy ) {
+inline void axpy( const int n, const float a, const float* x, const int incx,
+ float* y, const int incy ) {
     cblas_saxpy( n, a, x, incx, y, incy );
 }
 
@@ -70,8 +70,8 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline void axpy( int n, double a, const double* x, int incx, double* y,
- int incy ) {
+inline void axpy( const int n, const double a, const double* x,
+ const int incx, double* y, const int incy ) {
     cblas_daxpy( n, a, x, incx, y, incy );
 }
 
@@ -80,8 +80,9 @@
 // * CBLAS backend, and
 // * complex<float> value-type.
 //
-inline void axpy( int n, std::complex<float> a, const std::complex<float>* x,
- int incx, std::complex<float>* y, int incy ) {
+inline void axpy( const int n, const std::complex<float> a,
+ const std::complex<float>* x, const int incx, std::complex<float>* y,
+ const int incy ) {
     cblas_caxpy( n, &a, x, incx, y, incy );
 }
 
@@ -90,9 +91,9 @@
 // * CBLAS backend, and
 // * complex<double> value-type.
 //
-inline void axpy( int n, std::complex<double> a,
- const std::complex<double>* x, int incx, std::complex<double>* y,
- int incy ) {
+inline void axpy( const int n, const std::complex<double> a,
+ const std::complex<double>* x, const int incx,
+ std::complex<double>* y, const int incy ) {
     cblas_zaxpy( n, &a, x, incx, y, incy );
 }
 
@@ -102,8 +103,8 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline void axpy( int n, float a, const float* x, int incx, float* y,
- int incy ) {
+inline void axpy( const int n, const float a, const float* x, const int incx,
+ float* y, const int incy ) {
     cublasSaxpy( n, a, x, incx, y, incy );
 }
 
@@ -112,8 +113,8 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline void axpy( int n, double a, const double* x, int incx, double* y,
- int incy ) {
+inline void axpy( const int n, const double a, const double* x,
+ const int incx, double* y, const int incy ) {
     cublasDaxpy( n, a, x, incx, y, incy );
 }
 
@@ -122,8 +123,9 @@
 // * CUBLAS backend, and
 // * complex<float> value-type.
 //
-inline void axpy( int n, std::complex<float> a, const std::complex<float>* x,
- int incx, std::complex<float>* y, int incy ) {
+inline void axpy( const int n, const std::complex<float> a,
+ const std::complex<float>* x, const int incx, std::complex<float>* y,
+ const int incy ) {
     cublasCaxpy( n, a, x, incx, y, incy );
 }
 
@@ -132,9 +134,9 @@
 // * CUBLAS backend, and
 // * complex<double> value-type.
 //
-inline void axpy( int n, std::complex<double> a,
- const std::complex<double>* x, int incx, std::complex<double>* y,
- int incy ) {
+inline void axpy( const int n, const std::complex<double> a,
+ const std::complex<double>* x, const int incx,
+ std::complex<double>* y, const int incy ) {
     // NOT FOUND();
 }
 
@@ -144,8 +146,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline void axpy( fortran_int_t n, float a, const float* x,
- fortran_int_t incx, float* y, fortran_int_t incy ) {
+inline void axpy( const fortran_int_t n, const float a, const float* x,
+ const fortran_int_t incx, float* y, const fortran_int_t incy ) {
     BLAS_SAXPY( &n, &a, x, &incx, y, &incy );
 }
 
@@ -154,8 +156,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline void axpy( fortran_int_t n, double a, const double* x,
- fortran_int_t incx, double* y, fortran_int_t incy ) {
+inline void axpy( const fortran_int_t n, const double a, const double* x,
+ const fortran_int_t incx, double* y, const fortran_int_t incy ) {
     BLAS_DAXPY( &n, &a, x, &incx, y, &incy );
 }
 
@@ -164,9 +166,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<float> value-type.
 //
-inline void axpy( fortran_int_t n, std::complex<float> a,
- const std::complex<float>* x, fortran_int_t incx,
- std::complex<float>* y, fortran_int_t incy ) {
+inline void axpy( const fortran_int_t n, const std::complex<float> a,
+ const std::complex<float>* x, const fortran_int_t incx,
+ std::complex<float>* y, const fortran_int_t incy ) {
     BLAS_CAXPY( &n, &a, x, &incx, y, &incy );
 }
 
@@ -175,9 +177,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<double> value-type.
 //
-inline void axpy( fortran_int_t n, std::complex<double> a,
- const std::complex<double>* x, fortran_int_t incx,
- std::complex<double>* y, fortran_int_t incy ) {
+inline void axpy( const fortran_int_t n, const std::complex<double> a,
+ const std::complex<double>* x, const fortran_int_t incx,
+ std::complex<double>* y, const fortran_int_t incy ) {
     BLAS_ZAXPY( &n, &a, x, &incx, y, &incy );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/copy.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/copy.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/copy.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,7 +60,8 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline void copy( int n, const float* x, int incx, float* y, int incy ) {
+inline void copy( const int n, const float* x, const int incx, float* y,
+ const int incy ) {
     cblas_scopy( n, x, incx, y, incy );
 }
 
@@ -69,7 +70,8 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline void copy( int n, const double* x, int incx, double* y, int incy ) {
+inline void copy( const int n, const double* x, const int incx, double* y,
+ const int incy ) {
     cblas_dcopy( n, x, incx, y, incy );
 }
 
@@ -78,8 +80,8 @@
 // * CBLAS backend, and
 // * complex<float> value-type.
 //
-inline void copy( int n, const std::complex<float>* x, int incx,
- std::complex<float>* y, int incy ) {
+inline void copy( const int n, const std::complex<float>* x, const int incx,
+ std::complex<float>* y, const int incy ) {
     cblas_ccopy( n, x, incx, y, incy );
 }
 
@@ -88,8 +90,8 @@
 // * CBLAS backend, and
 // * complex<double> value-type.
 //
-inline void copy( int n, const std::complex<double>* x, int incx,
- std::complex<double>* y, int incy ) {
+inline void copy( const int n, const std::complex<double>* x, const int incx,
+ std::complex<double>* y, const int incy ) {
     cblas_zcopy( n, x, incx, y, incy );
 }
 
@@ -99,7 +101,8 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline void copy( int n, const float* x, int incx, float* y, int incy ) {
+inline void copy( const int n, const float* x, const int incx, float* y,
+ const int incy ) {
     cublasScopy( n, x, incx, y, incy );
 }
 
@@ -108,7 +111,8 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline void copy( int n, const double* x, int incx, double* y, int incy ) {
+inline void copy( const int n, const double* x, const int incx, double* y,
+ const int incy ) {
     cublasDcopy( n, x, incx, y, incy );
 }
 
@@ -117,8 +121,8 @@
 // * CUBLAS backend, and
 // * complex<float> value-type.
 //
-inline void copy( int n, const std::complex<float>* x, int incx,
- std::complex<float>* y, int incy ) {
+inline void copy( const int n, const std::complex<float>* x, const int incx,
+ std::complex<float>* y, const int incy ) {
     cublasCcopy( n, x, incx, y, incy );
 }
 
@@ -127,8 +131,8 @@
 // * CUBLAS backend, and
 // * complex<double> value-type.
 //
-inline void copy( int n, const std::complex<double>* x, int incx,
- std::complex<double>* y, int incy ) {
+inline void copy( const int n, const std::complex<double>* x, const int incx,
+ std::complex<double>* y, const int incy ) {
     // NOT FOUND();
 }
 
@@ -138,8 +142,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline void copy( fortran_int_t n, const float* x, fortran_int_t incx,
- float* y, fortran_int_t incy ) {
+inline void copy( const fortran_int_t n, const float* x,
+ const fortran_int_t incx, float* y, const fortran_int_t incy ) {
     BLAS_SCOPY( &n, x, &incx, y, &incy );
 }
 
@@ -148,8 +152,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline void copy( fortran_int_t n, const double* x, fortran_int_t incx,
- double* y, fortran_int_t incy ) {
+inline void copy( const fortran_int_t n, const double* x,
+ const fortran_int_t incx, double* y, const fortran_int_t incy ) {
     BLAS_DCOPY( &n, x, &incx, y, &incy );
 }
 
@@ -158,8 +162,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<float> value-type.
 //
-inline void copy( fortran_int_t n, const std::complex<float>* x,
- fortran_int_t incx, std::complex<float>* y, fortran_int_t incy ) {
+inline void copy( const fortran_int_t n, const std::complex<float>* x,
+ const fortran_int_t incx, std::complex<float>* y,
+ const fortran_int_t incy ) {
     BLAS_CCOPY( &n, x, &incx, y, &incy );
 }
 
@@ -168,8 +173,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<double> value-type.
 //
-inline void copy( fortran_int_t n, const std::complex<double>* x,
- fortran_int_t incx, std::complex<double>* y, fortran_int_t incy ) {
+inline void copy( const fortran_int_t n, const std::complex<double>* x,
+ const fortran_int_t incx, std::complex<double>* y,
+ const fortran_int_t incy ) {
     BLAS_ZCOPY( &n, x, &incx, y, &incy );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dot.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dot.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dot.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,7 +60,8 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline float dot( int n, const float* x, int incx, const float* y, int incy ) {
+inline float dot( const int n, const float* x, const int incx, const float* y,
+ const int incy ) {
     return cblas_sdot( n, x, incx, y, incy );
 }
 
@@ -69,8 +70,8 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline double dot( int n, const double* x, int incx, const double* y,
- int incy ) {
+inline double dot( const int n, const double* x, const int incx,
+ const double* y, const int incy ) {
     return cblas_ddot( n, x, incx, y, incy );
 }
 
@@ -80,7 +81,8 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline float dot( int n, const float* x, int incx, const float* y, int incy ) {
+inline float dot( const int n, const float* x, const int incx, const float* y,
+ const int incy ) {
     return cublasSdot( n, x, incx, y, incy );
 }
 
@@ -89,8 +91,8 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline double dot( int n, const double* x, int incx, const double* y,
- int incy ) {
+inline double dot( const int n, const double* x, const int incx,
+ const double* y, const int incy ) {
     return cublasDdot( n, x, incx, y, incy );
 }
 
@@ -100,8 +102,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline float dot( fortran_int_t n, const float* x, fortran_int_t incx,
- const float* y, fortran_int_t incy ) {
+inline float dot( const fortran_int_t n, const float* x,
+ const fortran_int_t incx, const float* y, const fortran_int_t incy ) {
     return BLAS_SDOT( &n, x, &incx, y, &incy );
 }
 
@@ -110,8 +112,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline double dot( fortran_int_t n, const double* x, fortran_int_t incx,
- const double* y, fortran_int_t incy ) {
+inline double dot( const fortran_int_t n, const double* x,
+ const fortran_int_t incx, const double* y, const fortran_int_t incy ) {
     return BLAS_DDOT( &n, x, &incx, y, &incy );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dotc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dotc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dotc.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,8 +60,8 @@
 // * CBLAS backend, and
 // * complex<float> value-type.
 //
-inline std::complex<float> dotc( int n, const std::complex<float>* x,
- int incx, const std::complex<float>* y, int incy ) {
+inline std::complex<float> dotc( const int n, const std::complex<float>* x,
+ const int incx, const std::complex<float>* y, const int incy ) {
     std::complex<float> result;
     cblas_cdotc_sub( n, x, incx, y, incy, &result );
     return result;
@@ -72,8 +72,8 @@
 // * CBLAS backend, and
 // * complex<double> value-type.
 //
-inline std::complex<double> dotc( int n, const std::complex<double>* x,
- int incx, const std::complex<double>* y, int incy ) {
+inline std::complex<double> dotc( const int n, const std::complex<double>* x,
+ const int incx, const std::complex<double>* y, const int incy ) {
     std::complex<double> result;
     cblas_zdotc_sub( n, x, incx, y, incy, &result );
     return result;
@@ -85,8 +85,8 @@
 // * CUBLAS backend, and
 // * complex<float> value-type.
 //
-inline std::complex<float> dotc( int n, const std::complex<float>* x,
- int incx, const std::complex<float>* y, int incy ) {
+inline std::complex<float> dotc( const int n, const std::complex<float>* x,
+ const int incx, const std::complex<float>* y, const int incy ) {
     return cublasCdotc( n, x, incx, y, incy );
 }
 
@@ -95,8 +95,8 @@
 // * CUBLAS backend, and
 // * complex<double> value-type.
 //
-inline std::complex<double> dotc( int n, const std::complex<double>* x,
- int incx, const std::complex<double>* y, int incy ) {
+inline std::complex<double> dotc( const int n, const std::complex<double>* x,
+ const int incx, const std::complex<double>* y, const int incy ) {
     return // NOT FOUND();
 }
 
@@ -106,9 +106,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<float> value-type.
 //
-inline std::complex<float> dotc( fortran_int_t n,
- const std::complex<float>* x, fortran_int_t incx,
- const std::complex<float>* y, fortran_int_t incy ) {
+inline std::complex<float> dotc( const fortran_int_t n,
+ const std::complex<float>* x, const fortran_int_t incx,
+ const std::complex<float>* y, const fortran_int_t incy ) {
     return BLAS_CDOTC( &n, x, &incx, y, &incy );
 }
 
@@ -117,9 +117,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<double> value-type.
 //
-inline std::complex<double> dotc( fortran_int_t n,
- const std::complex<double>* x, fortran_int_t incx,
- const std::complex<double>* y, fortran_int_t incy ) {
+inline std::complex<double> dotc( const fortran_int_t n,
+ const std::complex<double>* x, const fortran_int_t incx,
+ const std::complex<double>* y, const fortran_int_t incy ) {
     return BLAS_ZDOTC( &n, x, &incx, y, &incy );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dotu.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dotu.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/dotu.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,8 +60,8 @@
 // * CBLAS backend, and
 // * complex<float> value-type.
 //
-inline std::complex<float> dotu( int n, const std::complex<float>* x,
- int incx, const std::complex<float>* y, int incy ) {
+inline std::complex<float> dotu( const int n, const std::complex<float>* x,
+ const int incx, const std::complex<float>* y, const int incy ) {
     std::complex<float> result;
     cblas_cdotu_sub( n, x, incx, y, incy, &result );
     return result;
@@ -72,8 +72,8 @@
 // * CBLAS backend, and
 // * complex<double> value-type.
 //
-inline std::complex<double> dotu( int n, const std::complex<double>* x,
- int incx, const std::complex<double>* y, int incy ) {
+inline std::complex<double> dotu( const int n, const std::complex<double>* x,
+ const int incx, const std::complex<double>* y, const int incy ) {
     std::complex<double> result;
     cblas_zdotu_sub( n, x, incx, y, incy, &result );
     return result;
@@ -85,8 +85,8 @@
 // * CUBLAS backend, and
 // * complex<float> value-type.
 //
-inline std::complex<float> dotu( int n, const std::complex<float>* x,
- int incx, const std::complex<float>* y, int incy ) {
+inline std::complex<float> dotu( const int n, const std::complex<float>* x,
+ const int incx, const std::complex<float>* y, const int incy ) {
     return cublasCdotu( n, x, incx, y, incy );
 }
 
@@ -95,8 +95,8 @@
 // * CUBLAS backend, and
 // * complex<double> value-type.
 //
-inline std::complex<double> dotu( int n, const std::complex<double>* x,
- int incx, const std::complex<double>* y, int incy ) {
+inline std::complex<double> dotu( const int n, const std::complex<double>* x,
+ const int incx, const std::complex<double>* y, const int incy ) {
     return cublasZdotu( n, x, incx, y, incy );
 }
 
@@ -106,9 +106,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<float> value-type.
 //
-inline std::complex<float> dotu( fortran_int_t n,
- const std::complex<float>* x, fortran_int_t incx,
- const std::complex<float>* y, fortran_int_t incy ) {
+inline std::complex<float> dotu( const fortran_int_t n,
+ const std::complex<float>* x, const fortran_int_t incx,
+ const std::complex<float>* y, const fortran_int_t incy ) {
     return BLAS_CDOTU( &n, x, &incx, y, &incy );
 }
 
@@ -117,9 +117,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<double> value-type.
 //
-inline std::complex<double> dotu( fortran_int_t n,
- const std::complex<double>* x, fortran_int_t incx,
- const std::complex<double>* y, fortran_int_t incy ) {
+inline std::complex<double> dotu( const fortran_int_t n,
+ const std::complex<double>* x, const fortran_int_t incx,
+ const std::complex<double>* y, const fortran_int_t incy ) {
     return BLAS_ZDOTU( &n, x, &incx, y, &incy );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/nrm2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/nrm2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/nrm2.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,7 +60,7 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline float nrm2( int n, const float* x, int incx ) {
+inline float nrm2( const int n, const float* x, const int incx ) {
     return cblas_snrm2( n, x, incx );
 }
 
@@ -69,7 +69,7 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline double nrm2( int n, const double* x, int incx ) {
+inline double nrm2( const int n, const double* x, const int incx ) {
     return cblas_dnrm2( n, x, incx );
 }
 
@@ -79,7 +79,7 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline float nrm2( int n, const float* x, int incx ) {
+inline float nrm2( const int n, const float* x, const int incx ) {
     return cublasSnrm2( n, x, incx );
 }
 
@@ -88,7 +88,7 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline double nrm2( int n, const double* x, int incx ) {
+inline double nrm2( const int n, const double* x, const int incx ) {
     return cublasDnrm2( n, x, incx );
 }
 
@@ -98,7 +98,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline float nrm2( fortran_int_t n, const float* x, fortran_int_t incx ) {
+inline float nrm2( const fortran_int_t n, const float* x,
+ const fortran_int_t incx ) {
     return BLAS_SNRM2( &n, x, &incx );
 }
 
@@ -107,7 +108,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline double nrm2( fortran_int_t n, const double* x, fortran_int_t incx ) {
+inline double nrm2( const fortran_int_t n, const double* x,
+ const fortran_int_t incx ) {
     return BLAS_DNRM2( &n, x, &incx );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rot.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rot.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rot.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,8 +60,8 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline void rot( int n, const float* x, int incx, float* y, int incy, float c,
- float s ) {
+inline void rot( const int n, const float* x, const int incx, float* y,
+ const int incy, const float c, const float s ) {
     cblas_srot( n, x, incx, y, incy, c, s );
 }
 
@@ -70,8 +70,8 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline void rot( int n, const double* x, int incx, double* y, int incy,
- double c, double s ) {
+inline void rot( const int n, const double* x, const int incx, double* y,
+ const int incy, const double c, const double s ) {
     cblas_drot( n, x, incx, y, incy, c, s );
 }
 
@@ -81,8 +81,8 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline void rot( int n, const float* x, int incx, float* y, int incy, float c,
- float s ) {
+inline void rot( const int n, const float* x, const int incx, float* y,
+ const int incy, const float c, const float s ) {
     cublasSrot( n, x, incx, y, incy, c, s );
 }
 
@@ -91,8 +91,8 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline void rot( int n, const double* x, int incx, double* y, int incy,
- double c, double s ) {
+inline void rot( const int n, const double* x, const int incx, double* y,
+ const int incy, const double c, const double s ) {
     cublasDrot( n, x, incx, y, incy, c, s );
 }
 
@@ -102,8 +102,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline void rot( fortran_int_t n, const float* x, fortran_int_t incx,
- float* y, fortran_int_t incy, float c, float s ) {
+inline void rot( const fortran_int_t n, const float* x,
+ const fortran_int_t incx, float* y, const fortran_int_t incy,
+ const float c, const float s ) {
     BLAS_SROT( &n, x, &incx, y, &incy, &c, &s );
 }
 
@@ -112,8 +113,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline void rot( fortran_int_t n, const double* x, fortran_int_t incx,
- double* y, fortran_int_t incy, double c, double s ) {
+inline void rot( const fortran_int_t n, const double* x,
+ const fortran_int_t incx, double* y, const fortran_int_t incy,
+ const double c, const double s ) {
     BLAS_DROT( &n, x, &incx, y, &incy, &c, &s );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rotm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rotm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rotm.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,8 +60,8 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline void rotm( int n, float* x, int incx, float* y, int incy,
- float* param ) {
+inline void rotm( const int n, float* x, const int incx, float* y,
+ const int incy, float* param ) {
     cblas_srotm( n, x, incx, y, incy, param );
 }
 
@@ -70,8 +70,8 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline void rotm( int n, double* x, int incx, double* y, int incy,
- double* param ) {
+inline void rotm( const int n, double* x, const int incx, double* y,
+ const int incy, double* param ) {
     cblas_drotm( n, x, incx, y, incy, param );
 }
 
@@ -81,8 +81,8 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline void rotm( int n, float* x, int incx, float* y, int incy,
- float* param ) {
+inline void rotm( const int n, float* x, const int incx, float* y,
+ const int incy, float* param ) {
     cublasSrotm( n, x, incx, y, incy, param );
 }
 
@@ -91,8 +91,8 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline void rotm( int n, double* x, int incx, double* y, int incy,
- double* param ) {
+inline void rotm( const int n, double* x, const int incx, double* y,
+ const int incy, double* param ) {
     cublasDrotm( n, x, incx, y, incy, param );
 }
 
@@ -102,8 +102,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline void rotm( fortran_int_t n, float* x, fortran_int_t incx, float* y,
- fortran_int_t incy, float* param ) {
+inline void rotm( const fortran_int_t n, float* x, const fortran_int_t incx,
+ float* y, const fortran_int_t incy, float* param ) {
     BLAS_SROTM( &n, x, &incx, y, &incy, param );
 }
 
@@ -112,8 +112,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline void rotm( fortran_int_t n, double* x, fortran_int_t incx, double* y,
- fortran_int_t incy, double* param ) {
+inline void rotm( const fortran_int_t n, double* x, const fortran_int_t incx,
+ double* y, const fortran_int_t incy, double* param ) {
     BLAS_DROTM( &n, x, &incx, y, &incy, param );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rotmg.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rotmg.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/rotmg.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,7 +60,8 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline void rotmg( float& d1, float& d2, float& x1, float y1, float* sparam ) {
+inline void rotmg( float& d1, float& d2, float& x1, const float y1,
+ float* sparam ) {
     cblas_srotmg( &d1, &d2, &x1, &y1, sparam );
 }
 
@@ -69,7 +70,7 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline void rotmg( double& d1, double& d2, double& x1, double y1,
+inline void rotmg( double& d1, double& d2, double& x1, const double y1,
         double* dparam ) {
     cblas_drotmg( &d1, &d2, &x1, &y1, dparam );
 }
@@ -80,7 +81,8 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline void rotmg( float& d1, float& d2, float& x1, float y1, float* sparam ) {
+inline void rotmg( float& d1, float& d2, float& x1, const float y1,
+ float* sparam ) {
     cublasSrotmg( &d1, &d2, &x1, &y1, sparam );
 }
 
@@ -89,7 +91,7 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline void rotmg( double& d1, double& d2, double& x1, double y1,
+inline void rotmg( double& d1, double& d2, double& x1, const double y1,
         double* dparam ) {
     cublasDrotmg( &d1, &d2, &x1, &y1, dparam );
 }
@@ -100,7 +102,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline void rotmg( float& d1, float& d2, float& x1, float y1, float* sparam ) {
+inline void rotmg( float& d1, float& d2, float& x1, const float y1,
+ float* sparam ) {
     BLAS_SROTMG( &d1, &d2, &x1, &y1, sparam );
 }
 
@@ -109,7 +112,7 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline void rotmg( double& d1, double& d2, double& x1, double y1,
+inline void rotmg( double& d1, double& d2, double& x1, const double y1,
         double* dparam ) {
     BLAS_DROTMG( &d1, &d2, &x1, &y1, dparam );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/scal.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/scal.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/scal.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,7 +60,7 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline void scal( int n, float a, float* x, int incx ) {
+inline void scal( const int n, const float a, float* x, const int incx ) {
     cblas_sscal( n, a, x, incx );
 }
 
@@ -69,7 +69,7 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline void scal( int n, double a, double* x, int incx ) {
+inline void scal( const int n, const double a, double* x, const int incx ) {
     cblas_dscal( n, a, x, incx );
 }
 
@@ -78,8 +78,8 @@
 // * CBLAS backend, and
 // * complex<float> value-type.
 //
-inline void scal( int n, std::complex<float> a, std::complex<float>* x,
- int incx ) {
+inline void scal( const int n, const std::complex<float> a,
+ std::complex<float>* x, const int incx ) {
     cblas_cscal( n, &a, x, incx );
 }
 
@@ -88,8 +88,8 @@
 // * CBLAS backend, and
 // * complex<double> value-type.
 //
-inline void scal( int n, std::complex<double> a, std::complex<double>* x,
- int incx ) {
+inline void scal( const int n, const std::complex<double> a,
+ std::complex<double>* x, const int incx ) {
     cblas_zscal( n, &a, x, incx );
 }
 
@@ -99,7 +99,7 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline void scal( int n, float a, float* x, int incx ) {
+inline void scal( const int n, const float a, float* x, const int incx ) {
     cublasSscal( n, a, x, incx );
 }
 
@@ -108,7 +108,7 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline void scal( int n, double a, double* x, int incx ) {
+inline void scal( const int n, const double a, double* x, const int incx ) {
     cublasDscal( n, a, x, incx );
 }
 
@@ -117,8 +117,8 @@
 // * CUBLAS backend, and
 // * complex<float> value-type.
 //
-inline void scal( int n, std::complex<float> a, std::complex<float>* x,
- int incx ) {
+inline void scal( const int n, const std::complex<float> a,
+ std::complex<float>* x, const int incx ) {
     cublasCscal( n, a, x, incx );
 }
 
@@ -127,8 +127,8 @@
 // * CUBLAS backend, and
 // * complex<double> value-type.
 //
-inline void scal( int n, std::complex<double> a, std::complex<double>* x,
- int incx ) {
+inline void scal( const int n, const std::complex<double> a,
+ std::complex<double>* x, const int incx ) {
     cublasZscal( n, a, x, incx );
 }
 
@@ -138,7 +138,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline void scal( fortran_int_t n, float a, float* x, fortran_int_t incx ) {
+inline void scal( const fortran_int_t n, const float a, float* x,
+ const fortran_int_t incx ) {
     BLAS_SSCAL( &n, &a, x, &incx );
 }
 
@@ -147,7 +148,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline void scal( fortran_int_t n, double a, double* x, fortran_int_t incx ) {
+inline void scal( const fortran_int_t n, const double a, double* x,
+ const fortran_int_t incx ) {
     BLAS_DSCAL( &n, &a, x, &incx );
 }
 
@@ -156,8 +158,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<float> value-type.
 //
-inline void scal( fortran_int_t n, std::complex<float> a,
- std::complex<float>* x, fortran_int_t incx ) {
+inline void scal( const fortran_int_t n, const std::complex<float> a,
+ std::complex<float>* x, const fortran_int_t incx ) {
     BLAS_CSCAL( &n, &a, x, &incx );
 }
 
@@ -166,8 +168,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<double> value-type.
 //
-inline void scal( fortran_int_t n, std::complex<double> a,
- std::complex<double>* x, fortran_int_t incx ) {
+inline void scal( const fortran_int_t n, const std::complex<double> a,
+ std::complex<double>* x, const fortran_int_t incx ) {
     BLAS_ZSCAL( &n, &a, x, &incx );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/sdot.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/sdot.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/sdot.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,8 +60,8 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline double sdot( int n, const float* sx, int incx, const float* sy,
- int incy ) {
+inline double sdot( const int n, const float* sx, const int incx,
+ const float* sy, const int incy ) {
     return cblas_dsdot( n, sx, incx, sy, incy );
 }
 
@@ -71,8 +71,8 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline double sdot( int n, const float* sx, int incx, const float* sy,
- int incy ) {
+inline double sdot( const int n, const float* sx, const int incx,
+ const float* sy, const int incy ) {
     return // NOT FOUND();
 }
 
@@ -82,8 +82,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline double sdot( fortran_int_t n, const float* sx, fortran_int_t incx,
- const float* sy, fortran_int_t incy ) {
+inline double sdot( const fortran_int_t n, const float* sx,
+ const fortran_int_t incx, const float* sy, const fortran_int_t incy ) {
     return BLAS_DSDOT( &n, sx, &incx, sy, &incy );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/swap.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/swap.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level1/swap.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -60,7 +60,8 @@
 // * CBLAS backend, and
 // * float value-type.
 //
-inline void swap( int n, float* x, int incx, float* y, int incy ) {
+inline void swap( const int n, float* x, const int incx, float* y,
+ const int incy ) {
     cblas_sswap( n, x, incx, y, incy );
 }
 
@@ -69,7 +70,8 @@
 // * CBLAS backend, and
 // * double value-type.
 //
-inline void swap( int n, double* x, int incx, double* y, int incy ) {
+inline void swap( const int n, double* x, const int incx, double* y,
+ const int incy ) {
     cblas_dswap( n, x, incx, y, incy );
 }
 
@@ -78,8 +80,8 @@
 // * CBLAS backend, and
 // * complex<float> value-type.
 //
-inline void swap( int n, std::complex<float>* x, int incx,
- std::complex<float>* y, int incy ) {
+inline void swap( const int n, std::complex<float>* x, const int incx,
+ std::complex<float>* y, const int incy ) {
     cblas_cswap( n, x, incx, y, incy );
 }
 
@@ -88,8 +90,8 @@
 // * CBLAS backend, and
 // * complex<double> value-type.
 //
-inline void swap( int n, std::complex<double>* x, int incx,
- std::complex<double>* y, int incy ) {
+inline void swap( const int n, std::complex<double>* x, const int incx,
+ std::complex<double>* y, const int incy ) {
     cblas_zswap( n, x, incx, y, incy );
 }
 
@@ -99,7 +101,8 @@
 // * CUBLAS backend, and
 // * float value-type.
 //
-inline void swap( int n, float* x, int incx, float* y, int incy ) {
+inline void swap( const int n, float* x, const int incx, float* y,
+ const int incy ) {
     cublasSswap( n, x, incx, y, incy );
 }
 
@@ -108,7 +111,8 @@
 // * CUBLAS backend, and
 // * double value-type.
 //
-inline void swap( int n, double* x, int incx, double* y, int incy ) {
+inline void swap( const int n, double* x, const int incx, double* y,
+ const int incy ) {
     cublasDswap( n, x, incx, y, incy );
 }
 
@@ -117,8 +121,8 @@
 // * CUBLAS backend, and
 // * complex<float> value-type.
 //
-inline void swap( int n, std::complex<float>* x, int incx,
- std::complex<float>* y, int incy ) {
+inline void swap( const int n, std::complex<float>* x, const int incx,
+ std::complex<float>* y, const int incy ) {
     cublasCswap( n, x, incx, y, incy );
 }
 
@@ -127,8 +131,8 @@
 // * CUBLAS backend, and
 // * complex<double> value-type.
 //
-inline void swap( int n, std::complex<double>* x, int incx,
- std::complex<double>* y, int incy ) {
+inline void swap( const int n, std::complex<double>* x, const int incx,
+ std::complex<double>* y, const int incy ) {
     // NOT FOUND();
 }
 
@@ -138,8 +142,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * float value-type.
 //
-inline void swap( fortran_int_t n, float* x, fortran_int_t incx, float* y,
- fortran_int_t incy ) {
+inline void swap( const fortran_int_t n, float* x, const fortran_int_t incx,
+ float* y, const fortran_int_t incy ) {
     BLAS_SSWAP( &n, x, &incx, y, &incy );
 }
 
@@ -148,8 +152,8 @@
 // * netlib-compatible BLAS backend (the default), and
 // * double value-type.
 //
-inline void swap( fortran_int_t n, double* x, fortran_int_t incx, double* y,
- fortran_int_t incy ) {
+inline void swap( const fortran_int_t n, double* x, const fortran_int_t incx,
+ double* y, const fortran_int_t incy ) {
     BLAS_DSWAP( &n, x, &incx, y, &incy );
 }
 
@@ -158,8 +162,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<float> value-type.
 //
-inline void swap( fortran_int_t n, std::complex<float>* x, fortran_int_t incx,
- std::complex<float>* y, fortran_int_t incy ) {
+inline void swap( const fortran_int_t n, std::complex<float>* x,
+ const fortran_int_t incx, std::complex<float>* y,
+ const fortran_int_t incy ) {
     BLAS_CSWAP( &n, x, &incx, y, &incy );
 }
 
@@ -168,8 +173,9 @@
 // * netlib-compatible BLAS backend (the default), and
 // * complex<double> value-type.
 //
-inline void swap( fortran_int_t n, std::complex<double>* x,
- fortran_int_t incx, std::complex<double>* y, fortran_int_t incy ) {
+inline void swap( const fortran_int_t n, std::complex<double>* x,
+ const fortran_int_t incx, std::complex<double>* y,
+ const fortran_int_t incy ) {
     BLAS_ZSWAP( &n, x, &incx, y, &incy );
 }
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gbmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gbmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gbmv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -64,9 +64,10 @@
 // * float value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, int m, int n, int kl, int ku, float alpha,
- const float* a, int lda, const float* x, int incx, float beta,
- float* y, int incy ) {
+inline void gbmv( Order, Trans, const int m, const int n, const int kl,
+ const int ku, const float alpha, const float* a, const int lda,
+ const float* x, const int incx, const float beta, float* y,
+ const int incy ) {
     cblas_sgbmv( cblas_option< Order >::value, cblas_option< Trans >::value,
             m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy );
 }
@@ -77,9 +78,10 @@
 // * double value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, int m, int n, int kl, int ku, double alpha,
- const double* a, int lda, const double* x, int incx, double beta,
- double* y, int incy ) {
+inline void gbmv( Order, Trans, const int m, const int n, const int kl,
+ const int ku, const double alpha, const double* a, const int lda,
+ const double* x, const int incx, const double beta, double* y,
+ const int incy ) {
     cblas_dgbmv( cblas_option< Order >::value, cblas_option< Trans >::value,
             m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy );
 }
@@ -90,10 +92,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, int m, int n, int kl, int ku,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* x, int incx, std::complex<float> beta,
- std::complex<float>* y, int incy ) {
+inline void gbmv( Order, Trans, const int m, const int n, const int kl,
+ const int ku, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda,
+ const std::complex<float>* x, const int incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const int incy ) {
     cblas_cgbmv( cblas_option< Order >::value, cblas_option< Trans >::value,
             m, n, kl, ku, &alpha, a, lda, x, incx, &beta, y, incy );
 }
@@ -104,10 +108,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, int m, int n, int kl, int ku,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* x, int incx, std::complex<double> beta,
- std::complex<double>* y, int incy ) {
+inline void gbmv( Order, Trans, const int m, const int n, const int kl,
+ const int ku, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda,
+ const std::complex<double>* x, const int incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const int incy ) {
     cblas_zgbmv( cblas_option< Order >::value, cblas_option< Trans >::value,
             m, n, kl, ku, &alpha, a, lda, x, incx, &beta, y, incy );
 }
@@ -119,9 +125,10 @@
 // * float value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, int m, int n, int kl, int ku, float alpha,
- const float* a, int lda, const float* x, int incx, float beta,
- float* y, int incy ) {
+inline void gbmv( Order, Trans, const int m, const int n, const int kl,
+ const int ku, const float alpha, const float* a, const int lda,
+ const float* x, const int incx, const float beta, float* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSgbmv( blas_option< Trans >::value, m, n, kl, ku, alpha, a, lda, x,
             incx, beta, y, incy );
@@ -133,9 +140,10 @@
 // * double value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, int m, int n, int kl, int ku, double alpha,
- const double* a, int lda, const double* x, int incx, double beta,
- double* y, int incy ) {
+inline void gbmv( Order, Trans, const int m, const int n, const int kl,
+ const int ku, const double alpha, const double* a, const int lda,
+ const double* x, const int incx, const double beta, double* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -146,10 +154,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, int m, int n, int kl, int ku,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* x, int incx, std::complex<float> beta,
- std::complex<float>* y, int incy ) {
+inline void gbmv( Order, Trans, const int m, const int n, const int kl,
+ const int ku, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda,
+ const std::complex<float>* x, const int incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCgbmv( blas_option< Trans >::value, m, n, kl, ku, alpha, a, lda, x,
             incx, beta, y, incy );
@@ -161,10 +171,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, int m, int n, int kl, int ku,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* x, int incx, std::complex<double> beta,
- std::complex<double>* y, int incy ) {
+inline void gbmv( Order, Trans, const int m, const int n, const int kl,
+ const int ku, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda,
+ const std::complex<double>* x, const int incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -176,10 +188,11 @@
 // * float value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, float alpha, const float* a,
- fortran_int_t lda, const float* x, fortran_int_t incx, float beta,
- float* y, fortran_int_t incy ) {
+inline void gbmv( Order, Trans, const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, const float alpha,
+ const float* a, const fortran_int_t lda, const float* x,
+ const fortran_int_t incx, const float beta, float* y,
+ const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SGBMV( &blas_option< Trans >::value, &m, &n, &kl, &ku, &alpha, a,
             &lda, x, &incx, &beta, y, &incy );
@@ -191,10 +204,11 @@
 // * double value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, double alpha, const double* a,
- fortran_int_t lda, const double* x, fortran_int_t incx, double beta,
- double* y, fortran_int_t incy ) {
+inline void gbmv( Order, Trans, const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, const double alpha,
+ const double* a, const fortran_int_t lda, const double* x,
+ const fortran_int_t incx, const double beta, double* y,
+ const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DGBMV( &blas_option< Trans >::value, &m, &n, &kl, &ku, &alpha, a,
             &lda, x, &incx, &beta, y, &incy );
@@ -206,12 +220,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, std::complex<float> alpha,
- const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* x, fortran_int_t incx,
- std::complex<float> beta, std::complex<float>* y,
- fortran_int_t incy ) {
+inline void gbmv( Order, Trans, const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* x,
+ const fortran_int_t incx, const std::complex<float> beta,
+ std::complex<float>* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CGBMV( &blas_option< Trans >::value, &m, &n, &kl, &ku, &alpha, a,
             &lda, x, &incx, &beta, y, &incy );
@@ -223,12 +237,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename Trans >
-inline void gbmv( Order, Trans, fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, std::complex<double> alpha,
- const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* x, fortran_int_t incx,
- std::complex<double> beta, std::complex<double>* y,
- fortran_int_t incy ) {
+inline void gbmv( Order, Trans, const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* x,
+ const fortran_int_t incx, const std::complex<double> beta,
+ std::complex<double>* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZGBMV( &blas_option< Trans >::value, &m, &n, &kl, &ku, &alpha, a,
             &lda, x, &incx, &beta, y, &incy );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gemv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gemv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gemv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,9 @@
 // * float value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, int m, int n, float alpha, const float* a,
- int lda, const float* x, int incx, float beta, float* y, int incy ) {
+inline void gemv( Order, Trans, const int m, const int n, const float alpha,
+ const float* a, const int lda, const float* x, const int incx,
+ const float beta, float* y, const int incy ) {
     cblas_sgemv( cblas_option< Order >::value, cblas_option< Trans >::value,
             m, n, alpha, a, lda, x, incx, beta, y, incy );
 }
@@ -75,9 +76,9 @@
 // * double value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, int m, int n, double alpha, const double* a,
- int lda, const double* x, int incx, double beta, double* y,
- int incy ) {
+inline void gemv( Order, Trans, const int m, const int n, const double alpha,
+ const double* a, const int lda, const double* x, const int incx,
+ const double beta, double* y, const int incy ) {
     cblas_dgemv( cblas_option< Order >::value, cblas_option< Trans >::value,
             m, n, alpha, a, lda, x, incx, beta, y, incy );
 }
@@ -88,10 +89,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, int m, int n, std::complex<float> alpha,
- const std::complex<float>* a, int lda, const std::complex<float>* x,
- int incx, std::complex<float> beta, std::complex<float>* y,
- int incy ) {
+inline void gemv( Order, Trans, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* x, const int incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const int incy ) {
     cblas_cgemv( cblas_option< Order >::value, cblas_option< Trans >::value,
             m, n, &alpha, a, lda, x, incx, &beta, y, incy );
 }
@@ -102,10 +104,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, int m, int n, std::complex<double> alpha,
- const std::complex<double>* a, int lda, const std::complex<double>* x,
- int incx, std::complex<double> beta, std::complex<double>* y,
- int incy ) {
+inline void gemv( Order, Trans, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* x, const int incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const int incy ) {
     cblas_zgemv( cblas_option< Order >::value, cblas_option< Trans >::value,
             m, n, &alpha, a, lda, x, incx, &beta, y, incy );
 }
@@ -117,8 +120,9 @@
 // * float value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, int m, int n, float alpha, const float* a,
- int lda, const float* x, int incx, float beta, float* y, int incy ) {
+inline void gemv( Order, Trans, const int m, const int n, const float alpha,
+ const float* a, const int lda, const float* x, const int incx,
+ const float beta, float* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSgemv( blas_option< Trans >::value, m, n, alpha, a, lda, x, incx,
             beta, y, incy );
@@ -130,9 +134,9 @@
 // * double value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, int m, int n, double alpha, const double* a,
- int lda, const double* x, int incx, double beta, double* y,
- int incy ) {
+inline void gemv( Order, Trans, const int m, const int n, const double alpha,
+ const double* a, const int lda, const double* x, const int incx,
+ const double beta, double* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDgemv( blas_option< Trans >::value, m, n, alpha, a, lda, x, incx,
             beta, y, incy );
@@ -144,10 +148,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, int m, int n, std::complex<float> alpha,
- const std::complex<float>* a, int lda, const std::complex<float>* x,
- int incx, std::complex<float> beta, std::complex<float>* y,
- int incy ) {
+inline void gemv( Order, Trans, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* x, const int incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCgemv( blas_option< Trans >::value, m, n, alpha, a, lda, x, incx,
             beta, y, incy );
@@ -159,10 +164,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, int m, int n, std::complex<double> alpha,
- const std::complex<double>* a, int lda, const std::complex<double>* x,
- int incx, std::complex<double> beta, std::complex<double>* y,
- int incy ) {
+inline void gemv( Order, Trans, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* x, const int incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasZgemv( blas_option< Trans >::value, m, n, alpha, a, lda, x, incx,
             beta, y, incy );
@@ -175,9 +181,10 @@
 // * float value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, fortran_int_t m, fortran_int_t n, float alpha,
- const float* a, fortran_int_t lda, const float* x, fortran_int_t incx,
- float beta, float* y, fortran_int_t incy ) {
+inline void gemv( Order, Trans, const fortran_int_t m, const fortran_int_t n,
+ const float alpha, const float* a, const fortran_int_t lda,
+ const float* x, const fortran_int_t incx, const float beta, float* y,
+ const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SGEMV( &blas_option< Trans >::value, &m, &n, &alpha, a, &lda, x,
             &incx, &beta, y, &incy );
@@ -189,9 +196,10 @@
 // * double value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, fortran_int_t m, fortran_int_t n,
- double alpha, const double* a, fortran_int_t lda, const double* x,
- fortran_int_t incx, double beta, double* y, fortran_int_t incy ) {
+inline void gemv( Order, Trans, const fortran_int_t m, const fortran_int_t n,
+ const double alpha, const double* a, const fortran_int_t lda,
+ const double* x, const fortran_int_t incx, const double beta,
+ double* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DGEMV( &blas_option< Trans >::value, &m, &n, &alpha, a, &lda, x,
             &incx, &beta, y, &incy );
@@ -203,11 +211,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, fortran_int_t m, fortran_int_t n,
- std::complex<float> alpha, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* x, fortran_int_t incx,
- std::complex<float> beta, std::complex<float>* y,
- fortran_int_t incy ) {
+inline void gemv( Order, Trans, const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* x,
+ const fortran_int_t incx, const std::complex<float> beta,
+ std::complex<float>* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CGEMV( &blas_option< Trans >::value, &m, &n, &alpha, a, &lda, x,
             &incx, &beta, y, &incy );
@@ -219,11 +227,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename Trans >
-inline void gemv( Order, Trans, fortran_int_t m, fortran_int_t n,
- std::complex<double> alpha, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* x, fortran_int_t incx,
- std::complex<double> beta, std::complex<double>* y,
- fortran_int_t incy ) {
+inline void gemv( Order, Trans, const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* x,
+ const fortran_int_t incx, const std::complex<double> beta,
+ std::complex<double>* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZGEMV( &blas_option< Trans >::value, &m, &n, &alpha, a, &lda, x,
             &incx, &beta, y, &incy );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/ger.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/ger.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/ger.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -62,8 +62,9 @@
 // * float value-type.
 //
 template< typename Order >
-inline void ger( Order, int m, int n, float alpha, const float* x, int incx,
- const float* y, int incy, float* a, int lda ) {
+inline void ger( Order, const int m, const int n, const float alpha,
+ const float* x, const int incx, const float* y, const int incy,
+ float* a, const int lda ) {
     cblas_sger( cblas_option< Order >::value, m, n, alpha, x, incx, y, incy,
             a, lda );
 }
@@ -74,8 +75,9 @@
 // * double value-type.
 //
 template< typename Order >
-inline void ger( Order, int m, int n, double alpha, const double* x, int incx,
- const double* y, int incy, double* a, int lda ) {
+inline void ger( Order, const int m, const int n, const double alpha,
+ const double* x, const int incx, const double* y, const int incy,
+ double* a, const int lda ) {
     cblas_dger( cblas_option< Order >::value, m, n, alpha, x, incx, y, incy,
             a, lda );
 }
@@ -87,8 +89,9 @@
 // * float value-type.
 //
 template< typename Order >
-inline void ger( Order, int m, int n, float alpha, const float* x, int incx,
- const float* y, int incy, float* a, int lda ) {
+inline void ger( Order, const int m, const int n, const float alpha,
+ const float* x, const int incx, const float* y, const int incy,
+ float* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSger( m, n, alpha, x, incx, y, incy, a, lda );
 }
@@ -99,8 +102,9 @@
 // * double value-type.
 //
 template< typename Order >
-inline void ger( Order, int m, int n, double alpha, const double* x, int incx,
- const double* y, int incy, double* a, int lda ) {
+inline void ger( Order, const int m, const int n, const double alpha,
+ const double* x, const int incx, const double* y, const int incy,
+ double* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDger( m, n, alpha, x, incx, y, incy, a, lda );
 }
@@ -112,9 +116,10 @@
 // * float value-type.
 //
 template< typename Order >
-inline void ger( Order, fortran_int_t m, fortran_int_t n, float alpha,
- const float* x, fortran_int_t incx, const float* y,
- fortran_int_t incy, float* a, fortran_int_t lda ) {
+inline void ger( Order, const fortran_int_t m, const fortran_int_t n,
+ const float alpha, const float* x, const fortran_int_t incx,
+ const float* y, const fortran_int_t incy, float* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SGER( &m, &n, &alpha, x, &incx, y, &incy, a, &lda );
 }
@@ -125,9 +130,10 @@
 // * double value-type.
 //
 template< typename Order >
-inline void ger( Order, fortran_int_t m, fortran_int_t n, double alpha,
- const double* x, fortran_int_t incx, const double* y,
- fortran_int_t incy, double* a, fortran_int_t lda ) {
+inline void ger( Order, const fortran_int_t m, const fortran_int_t n,
+ const double alpha, const double* x, const fortran_int_t incx,
+ const double* y, const fortran_int_t incy, double* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DGER( &m, &n, &alpha, x, &incx, y, &incy, a, &lda );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gerc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gerc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/gerc.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -62,9 +62,10 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline void gerc( Order, int m, int n, std::complex<float> alpha,
- const std::complex<float>* x, int incx, const std::complex<float>* y,
- int incy, std::complex<float>* a, int lda ) {
+inline void gerc( Order, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* x,
+ const int incx, const std::complex<float>* y, const int incy,
+ std::complex<float>* a, const int lda ) {
     cblas_cgerc( cblas_option< Order >::value, m, n, &alpha, x, incx, y, incy,
             a, lda );
 }
@@ -75,10 +76,10 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline void gerc( Order, int m, int n, std::complex<double> alpha,
- const std::complex<double>* x, int incx,
- const std::complex<double>* y, int incy, std::complex<double>* a,
- int lda ) {
+inline void gerc( Order, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* x,
+ const int incx, const std::complex<double>* y, const int incy,
+ std::complex<double>* a, const int lda ) {
     cblas_zgerc( cblas_option< Order >::value, m, n, &alpha, x, incx, y, incy,
             a, lda );
 }
@@ -90,9 +91,10 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline void gerc( Order, int m, int n, std::complex<float> alpha,
- const std::complex<float>* x, int incx, const std::complex<float>* y,
- int incy, std::complex<float>* a, int lda ) {
+inline void gerc( Order, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* x,
+ const int incx, const std::complex<float>* y, const int incy,
+ std::complex<float>* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCgerc( m, n, alpha, x, incx, y, incy, a, lda );
 }
@@ -103,10 +105,10 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline void gerc( Order, int m, int n, std::complex<double> alpha,
- const std::complex<double>* x, int incx,
- const std::complex<double>* y, int incy, std::complex<double>* a,
- int lda ) {
+inline void gerc( Order, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* x,
+ const int incx, const std::complex<double>* y, const int incy,
+ std::complex<double>* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -118,10 +120,11 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline void gerc( Order, fortran_int_t m, fortran_int_t n,
- std::complex<float> alpha, const std::complex<float>* x,
- fortran_int_t incx, const std::complex<float>* y, fortran_int_t incy,
- std::complex<float>* a, fortran_int_t lda ) {
+inline void gerc( Order, const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* x,
+ const fortran_int_t incx, const std::complex<float>* y,
+ const fortran_int_t incy, std::complex<float>* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CGERC( &m, &n, &alpha, x, &incx, y, &incy, a, &lda );
 }
@@ -132,10 +135,11 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline void gerc( Order, fortran_int_t m, fortran_int_t n,
- std::complex<double> alpha, const std::complex<double>* x,
- fortran_int_t incx, const std::complex<double>* y, fortran_int_t incy,
- std::complex<double>* a, fortran_int_t lda ) {
+inline void gerc( Order, const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* x,
+ const fortran_int_t incx, const std::complex<double>* y,
+ const fortran_int_t incy, std::complex<double>* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZGERC( &m, &n, &alpha, x, &incx, y, &incy, a, &lda );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/geru.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/geru.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/geru.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -62,9 +62,10 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline void geru( Order, int m, int n, std::complex<float> alpha,
- const std::complex<float>* x, int incx, const std::complex<float>* y,
- int incy, std::complex<float>* a, int lda ) {
+inline void geru( Order, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* x,
+ const int incx, const std::complex<float>* y, const int incy,
+ std::complex<float>* a, const int lda ) {
     cblas_cgeru( cblas_option< Order >::value, m, n, &alpha, x, incx, y, incy,
             a, lda );
 }
@@ -75,10 +76,10 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline void geru( Order, int m, int n, std::complex<double> alpha,
- const std::complex<double>* x, int incx,
- const std::complex<double>* y, int incy, std::complex<double>* a,
- int lda ) {
+inline void geru( Order, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* x,
+ const int incx, const std::complex<double>* y, const int incy,
+ std::complex<double>* a, const int lda ) {
     cblas_zgeru( cblas_option< Order >::value, m, n, &alpha, x, incx, y, incy,
             a, lda );
 }
@@ -90,9 +91,10 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline void geru( Order, int m, int n, std::complex<float> alpha,
- const std::complex<float>* x, int incx, const std::complex<float>* y,
- int incy, std::complex<float>* a, int lda ) {
+inline void geru( Order, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* x,
+ const int incx, const std::complex<float>* y, const int incy,
+ std::complex<float>* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCgeru( m, n, alpha, x, incx, y, incy, a, lda );
 }
@@ -103,10 +105,10 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline void geru( Order, int m, int n, std::complex<double> alpha,
- const std::complex<double>* x, int incx,
- const std::complex<double>* y, int incy, std::complex<double>* a,
- int lda ) {
+inline void geru( Order, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* x,
+ const int incx, const std::complex<double>* y, const int incy,
+ std::complex<double>* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -118,10 +120,11 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline void geru( Order, fortran_int_t m, fortran_int_t n,
- std::complex<float> alpha, const std::complex<float>* x,
- fortran_int_t incx, const std::complex<float>* y, fortran_int_t incy,
- std::complex<float>* a, fortran_int_t lda ) {
+inline void geru( Order, const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* x,
+ const fortran_int_t incx, const std::complex<float>* y,
+ const fortran_int_t incy, std::complex<float>* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CGERU( &m, &n, &alpha, x, &incx, y, &incy, a, &lda );
 }
@@ -132,10 +135,11 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline void geru( Order, fortran_int_t m, fortran_int_t n,
- std::complex<double> alpha, const std::complex<double>* x,
- fortran_int_t incx, const std::complex<double>* y, fortran_int_t incy,
- std::complex<double>* a, fortran_int_t lda ) {
+inline void geru( Order, const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* x,
+ const fortran_int_t incx, const std::complex<double>* y,
+ const fortran_int_t incy, std::complex<double>* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZGERU( &m, &n, &alpha, x, &incx, y, &incy, a, &lda );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hbmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hbmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hbmv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -64,10 +64,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hbmv( Order, UpLo, int n, int k, std::complex<float> alpha,
- const std::complex<float>* a, int lda, const std::complex<float>* x,
- int incx, std::complex<float> beta, std::complex<float>* y,
- int incy ) {
+inline void hbmv( Order, UpLo, const int n, const int k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* x, const int incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const int incy ) {
     cblas_chbmv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             k, &alpha, a, lda, x, incx, &beta, y, incy );
 }
@@ -78,10 +79,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hbmv( Order, UpLo, int n, int k, std::complex<double> alpha,
- const std::complex<double>* a, int lda, const std::complex<double>* x,
- int incx, std::complex<double> beta, std::complex<double>* y,
- int incy ) {
+inline void hbmv( Order, UpLo, const int n, const int k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* x, const int incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const int incy ) {
     cblas_zhbmv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             k, &alpha, a, lda, x, incx, &beta, y, incy );
 }
@@ -93,10 +95,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hbmv( Order, UpLo, int n, int k, std::complex<float> alpha,
- const std::complex<float>* a, int lda, const std::complex<float>* x,
- int incx, std::complex<float> beta, std::complex<float>* y,
- int incy ) {
+inline void hbmv( Order, UpLo, const int n, const int k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* x, const int incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasChbmv( blas_option< UpLo >::value, n, k, alpha, a, lda, x, incx,
             beta, y, incy );
@@ -108,10 +111,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hbmv( Order, UpLo, int n, int k, std::complex<double> alpha,
- const std::complex<double>* a, int lda, const std::complex<double>* x,
- int incx, std::complex<double> beta, std::complex<double>* y,
- int incy ) {
+inline void hbmv( Order, UpLo, const int n, const int k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* x, const int incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -123,11 +127,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hbmv( Order, UpLo, fortran_int_t n, fortran_int_t k,
- std::complex<float> alpha, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* x, fortran_int_t incx,
- std::complex<float> beta, std::complex<float>* y,
- fortran_int_t incy ) {
+inline void hbmv( Order, UpLo, const fortran_int_t n, const fortran_int_t k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* x,
+ const fortran_int_t incx, const std::complex<float> beta,
+ std::complex<float>* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHBMV( &blas_option< UpLo >::value, &n, &k, &alpha, a, &lda, x,
             &incx, &beta, y, &incy );
@@ -139,11 +143,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hbmv( Order, UpLo, fortran_int_t n, fortran_int_t k,
- std::complex<double> alpha, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* x, fortran_int_t incx,
- std::complex<double> beta, std::complex<double>* y,
- fortran_int_t incy ) {
+inline void hbmv( Order, UpLo, const fortran_int_t n, const fortran_int_t k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* x,
+ const fortran_int_t incx, const std::complex<double> beta,
+ std::complex<double>* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHBMV( &blas_option< UpLo >::value, &n, &k, &alpha, a, &lda, x,
             &incx, &beta, y, &incy );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hemv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hemv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hemv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,10 +63,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemv( Order, UpLo, int n, std::complex<float> alpha,
- const std::complex<float>* a, int lda, const std::complex<float>* x,
- int incx, std::complex<float> beta, std::complex<float>* y,
- int incy ) {
+inline void hemv( Order, UpLo, const int n, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda,
+ const std::complex<float>* x, const int incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const int incy ) {
     cblas_chemv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             &alpha, a, lda, x, incx, &beta, y, incy );
 }
@@ -77,10 +78,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemv( Order, UpLo, int n, std::complex<double> alpha,
- const std::complex<double>* a, int lda, const std::complex<double>* x,
- int incx, std::complex<double> beta, std::complex<double>* y,
- int incy ) {
+inline void hemv( Order, UpLo, const int n, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda,
+ const std::complex<double>* x, const int incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const int incy ) {
     cblas_zhemv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             &alpha, a, lda, x, incx, &beta, y, incy );
 }
@@ -92,10 +94,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemv( Order, UpLo, int n, std::complex<float> alpha,
- const std::complex<float>* a, int lda, const std::complex<float>* x,
- int incx, std::complex<float> beta, std::complex<float>* y,
- int incy ) {
+inline void hemv( Order, UpLo, const int n, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda,
+ const std::complex<float>* x, const int incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasChemv( blas_option< UpLo >::value, n, alpha, a, lda, x, incx, beta,
             y, incy );
@@ -107,10 +110,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemv( Order, UpLo, int n, std::complex<double> alpha,
- const std::complex<double>* a, int lda, const std::complex<double>* x,
- int incx, std::complex<double> beta, std::complex<double>* y,
- int incy ) {
+inline void hemv( Order, UpLo, const int n, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda,
+ const std::complex<double>* x, const int incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -122,11 +126,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemv( Order, UpLo, fortran_int_t n, std::complex<float> alpha,
- const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* x, fortran_int_t incx,
- std::complex<float> beta, std::complex<float>* y,
- fortran_int_t incy ) {
+inline void hemv( Order, UpLo, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* x,
+ const fortran_int_t incx, const std::complex<float> beta,
+ std::complex<float>* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHEMV( &blas_option< UpLo >::value, &n, &alpha, a, &lda, x, &incx,
             &beta, y, &incy );
@@ -138,11 +142,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemv( Order, UpLo, fortran_int_t n, std::complex<double> alpha,
- const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* x, fortran_int_t incx,
- std::complex<double> beta, std::complex<double>* y,
- fortran_int_t incy ) {
+inline void hemv( Order, UpLo, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* x,
+ const fortran_int_t incx, const std::complex<double> beta,
+ std::complex<double>* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHEMV( &blas_option< UpLo >::value, &n, &alpha, a, &lda, x, &incx,
             &beta, y, &incy );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,9 +63,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her( Order, UpLo, int n, float alpha,
- const std::complex<float>* x, int incx, std::complex<float>* a,
- int lda ) {
+inline void her( Order, UpLo, const int n, const float alpha,
+ const std::complex<float>* x, const int incx, std::complex<float>* a,
+ const int lda ) {
     cblas_cher( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, a, lda );
 }
@@ -76,9 +76,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her( Order, UpLo, int n, double alpha,
- const std::complex<double>* x, int incx, std::complex<double>* a,
- int lda ) {
+inline void her( Order, UpLo, const int n, const double alpha,
+ const std::complex<double>* x, const int incx,
+ std::complex<double>* a, const int lda ) {
     cblas_zher( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, a, lda );
 }
@@ -90,9 +90,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her( Order, UpLo, int n, float alpha,
- const std::complex<float>* x, int incx, std::complex<float>* a,
- int lda ) {
+inline void her( Order, UpLo, const int n, const float alpha,
+ const std::complex<float>* x, const int incx, std::complex<float>* a,
+ const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCher( blas_option< UpLo >::value, n, alpha, x, incx, a, lda );
 }
@@ -103,9 +103,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her( Order, UpLo, int n, double alpha,
- const std::complex<double>* x, int incx, std::complex<double>* a,
- int lda ) {
+inline void her( Order, UpLo, const int n, const double alpha,
+ const std::complex<double>* x, const int incx,
+ std::complex<double>* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -117,9 +117,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her( Order, UpLo, fortran_int_t n, float alpha,
- const std::complex<float>* x, fortran_int_t incx,
- std::complex<float>* a, fortran_int_t lda ) {
+inline void her( Order, UpLo, const fortran_int_t n, const float alpha,
+ const std::complex<float>* x, const fortran_int_t incx,
+ std::complex<float>* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHER( &blas_option< UpLo >::value, &n, &alpha, x, &incx, a, &lda );
 }
@@ -130,9 +130,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her( Order, UpLo, fortran_int_t n, double alpha,
- const std::complex<double>* x, fortran_int_t incx,
- std::complex<double>* a, fortran_int_t lda ) {
+inline void her( Order, UpLo, const fortran_int_t n, const double alpha,
+ const std::complex<double>* x, const fortran_int_t incx,
+ std::complex<double>* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHER( &blas_option< UpLo >::value, &n, &alpha, x, &incx, a, &lda );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/her2.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,9 +63,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her2( Order, UpLo, int n, std::complex<float> alpha,
- const std::complex<float>* x, int incx, const std::complex<float>* y,
- int incy, std::complex<float>* a, int lda ) {
+inline void her2( Order, UpLo, const int n, const std::complex<float> alpha,
+ const std::complex<float>* x, const int incx,
+ const std::complex<float>* y, const int incy, std::complex<float>* a,
+ const int lda ) {
     cblas_cher2( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             &alpha, x, incx, y, incy, a, lda );
 }
@@ -76,10 +77,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her2( Order, UpLo, int n, std::complex<double> alpha,
- const std::complex<double>* x, int incx,
- const std::complex<double>* y, int incy, std::complex<double>* a,
- int lda ) {
+inline void her2( Order, UpLo, const int n, const std::complex<double> alpha,
+ const std::complex<double>* x, const int incx,
+ const std::complex<double>* y, const int incy,
+ std::complex<double>* a, const int lda ) {
     cblas_zher2( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             &alpha, x, incx, y, incy, a, lda );
 }
@@ -91,9 +92,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her2( Order, UpLo, int n, std::complex<float> alpha,
- const std::complex<float>* x, int incx, const std::complex<float>* y,
- int incy, std::complex<float>* a, int lda ) {
+inline void her2( Order, UpLo, const int n, const std::complex<float> alpha,
+ const std::complex<float>* x, const int incx,
+ const std::complex<float>* y, const int incy, std::complex<float>* a,
+ const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCher2( blas_option< UpLo >::value, n, alpha, x, incx, y, incy, a,
             lda );
@@ -105,10 +107,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her2( Order, UpLo, int n, std::complex<double> alpha,
- const std::complex<double>* x, int incx,
- const std::complex<double>* y, int incy, std::complex<double>* a,
- int lda ) {
+inline void her2( Order, UpLo, const int n, const std::complex<double> alpha,
+ const std::complex<double>* x, const int incx,
+ const std::complex<double>* y, const int incy,
+ std::complex<double>* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -120,10 +122,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her2( Order, UpLo, fortran_int_t n, std::complex<float> alpha,
- const std::complex<float>* x, fortran_int_t incx,
- const std::complex<float>* y, fortran_int_t incy,
- std::complex<float>* a, fortran_int_t lda ) {
+inline void her2( Order, UpLo, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* x,
+ const fortran_int_t incx, const std::complex<float>* y,
+ const fortran_int_t incy, std::complex<float>* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHER2( &blas_option< UpLo >::value, &n, &alpha, x, &incx, y, &incy,
             a, &lda );
@@ -135,10 +138,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void her2( Order, UpLo, fortran_int_t n, std::complex<double> alpha,
- const std::complex<double>* x, fortran_int_t incx,
- const std::complex<double>* y, fortran_int_t incy,
- std::complex<double>* a, fortran_int_t lda ) {
+inline void her2( Order, UpLo, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* x,
+ const fortran_int_t incx, const std::complex<double>* y,
+ const fortran_int_t incy, std::complex<double>* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHER2( &blas_option< UpLo >::value, &n, &alpha, x, &incx, y, &incy,
             a, &lda );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpmv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,9 +63,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpmv( Order, UpLo, int n, std::complex<float> alpha,
- const std::complex<float>* ap, const std::complex<float>* x, int incx,
- std::complex<float> beta, std::complex<float>* y, int incy ) {
+inline void hpmv( Order, UpLo, const int n, const std::complex<float> alpha,
+ const std::complex<float>* ap, const std::complex<float>* x,
+ const int incx, const std::complex<float> beta,
+ std::complex<float>* y, const int incy ) {
     cblas_chpmv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             &alpha, ap, x, incx, &beta, y, incy );
 }
@@ -76,10 +77,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpmv( Order, UpLo, int n, std::complex<double> alpha,
+inline void hpmv( Order, UpLo, const int n, const std::complex<double> alpha,
         const std::complex<double>* ap, const std::complex<double>* x,
- int incx, std::complex<double> beta, std::complex<double>* y,
- int incy ) {
+ const int incx, const std::complex<double> beta,
+ std::complex<double>* y, const int incy ) {
     cblas_zhpmv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             &alpha, ap, x, incx, &beta, y, incy );
 }
@@ -91,9 +92,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpmv( Order, UpLo, int n, std::complex<float> alpha,
- const std::complex<float>* ap, const std::complex<float>* x, int incx,
- std::complex<float> beta, std::complex<float>* y, int incy ) {
+inline void hpmv( Order, UpLo, const int n, const std::complex<float> alpha,
+ const std::complex<float>* ap, const std::complex<float>* x,
+ const int incx, const std::complex<float> beta,
+ std::complex<float>* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasChpmv( blas_option< UpLo >::value, n, alpha, ap, x, incx, beta, y,
             incy );
@@ -105,10 +107,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpmv( Order, UpLo, int n, std::complex<double> alpha,
+inline void hpmv( Order, UpLo, const int n, const std::complex<double> alpha,
         const std::complex<double>* ap, const std::complex<double>* x,
- int incx, std::complex<double> beta, std::complex<double>* y,
- int incy ) {
+ const int incx, const std::complex<double> beta,
+ std::complex<double>* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -120,10 +122,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpmv( Order, UpLo, fortran_int_t n, std::complex<float> alpha,
- const std::complex<float>* ap, const std::complex<float>* x,
- fortran_int_t incx, std::complex<float> beta, std::complex<float>* y,
- fortran_int_t incy ) {
+inline void hpmv( Order, UpLo, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* ap,
+ const std::complex<float>* x, const fortran_int_t incx,
+ const std::complex<float> beta, std::complex<float>* y,
+ const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHPMV( &blas_option< UpLo >::value, &n, &alpha, ap, x, &incx, &beta,
             y, &incy );
@@ -135,10 +138,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpmv( Order, UpLo, fortran_int_t n, std::complex<double> alpha,
- const std::complex<double>* ap, const std::complex<double>* x,
- fortran_int_t incx, std::complex<double> beta,
- std::complex<double>* y, fortran_int_t incy ) {
+inline void hpmv( Order, UpLo, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* ap,
+ const std::complex<double>* x, const fortran_int_t incx,
+ const std::complex<double> beta, std::complex<double>* y,
+ const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHPMV( &blas_option< UpLo >::value, &n, &alpha, ap, x, &incx, &beta,
             y, &incy );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr( Order, UpLo, int n, float alpha,
- const std::complex<float>* x, int incx, std::complex<float>* ap ) {
+inline void hpr( Order, UpLo, const int n, const float alpha,
+ const std::complex<float>* x, const int incx,
+ std::complex<float>* ap ) {
     cblas_chpr( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, ap );
 }
@@ -75,8 +76,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr( Order, UpLo, int n, double alpha,
- const std::complex<double>* x, int incx, std::complex<double>* ap ) {
+inline void hpr( Order, UpLo, const int n, const double alpha,
+ const std::complex<double>* x, const int incx,
+ std::complex<double>* ap ) {
     cblas_zhpr( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, ap );
 }
@@ -88,8 +90,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr( Order, UpLo, int n, float alpha,
- const std::complex<float>* x, int incx, std::complex<float>* ap ) {
+inline void hpr( Order, UpLo, const int n, const float alpha,
+ const std::complex<float>* x, const int incx,
+ std::complex<float>* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasChpr( blas_option< UpLo >::value, n, alpha, x, incx, ap );
 }
@@ -100,8 +103,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr( Order, UpLo, int n, double alpha,
- const std::complex<double>* x, int incx, std::complex<double>* ap ) {
+inline void hpr( Order, UpLo, const int n, const double alpha,
+ const std::complex<double>* x, const int incx,
+ std::complex<double>* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -113,8 +117,8 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr( Order, UpLo, fortran_int_t n, float alpha,
- const std::complex<float>* x, fortran_int_t incx,
+inline void hpr( Order, UpLo, const fortran_int_t n, const float alpha,
+ const std::complex<float>* x, const fortran_int_t incx,
         std::complex<float>* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHPR( &blas_option< UpLo >::value, &n, &alpha, x, &incx, ap );
@@ -126,8 +130,8 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr( Order, UpLo, fortran_int_t n, double alpha,
- const std::complex<double>* x, fortran_int_t incx,
+inline void hpr( Order, UpLo, const fortran_int_t n, const double alpha,
+ const std::complex<double>* x, const fortran_int_t incx,
         std::complex<double>* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHPR( &blas_option< UpLo >::value, &n, &alpha, x, &incx, ap );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/hpr2.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,9 +63,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr2( Order, UpLo, int n, std::complex<float> alpha,
- const std::complex<float>* x, int incx, const std::complex<float>* y,
- int incy, std::complex<float>* ap ) {
+inline void hpr2( Order, UpLo, const int n, const std::complex<float> alpha,
+ const std::complex<float>* x, const int incx,
+ const std::complex<float>* y, const int incy,
+ std::complex<float>* ap ) {
     cblas_chpr2( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             &alpha, x, incx, y, incy, ap );
 }
@@ -76,9 +77,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr2( Order, UpLo, int n, std::complex<double> alpha,
- const std::complex<double>* x, int incx,
- const std::complex<double>* y, int incy, std::complex<double>* ap ) {
+inline void hpr2( Order, UpLo, const int n, const std::complex<double> alpha,
+ const std::complex<double>* x, const int incx,
+ const std::complex<double>* y, const int incy,
+ std::complex<double>* ap ) {
     cblas_zhpr2( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             &alpha, x, incx, y, incy, ap );
 }
@@ -90,9 +92,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr2( Order, UpLo, int n, std::complex<float> alpha,
- const std::complex<float>* x, int incx, const std::complex<float>* y,
- int incy, std::complex<float>* ap ) {
+inline void hpr2( Order, UpLo, const int n, const std::complex<float> alpha,
+ const std::complex<float>* x, const int incx,
+ const std::complex<float>* y, const int incy,
+ std::complex<float>* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasChpr2( blas_option< UpLo >::value, n, alpha, x, incx, y, incy, ap );
 }
@@ -103,9 +106,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr2( Order, UpLo, int n, std::complex<double> alpha,
- const std::complex<double>* x, int incx,
- const std::complex<double>* y, int incy, std::complex<double>* ap ) {
+inline void hpr2( Order, UpLo, const int n, const std::complex<double> alpha,
+ const std::complex<double>* x, const int incx,
+ const std::complex<double>* y, const int incy,
+ std::complex<double>* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -117,10 +121,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr2( Order, UpLo, fortran_int_t n, std::complex<float> alpha,
- const std::complex<float>* x, fortran_int_t incx,
- const std::complex<float>* y, fortran_int_t incy,
- std::complex<float>* ap ) {
+inline void hpr2( Order, UpLo, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* x,
+ const fortran_int_t incx, const std::complex<float>* y,
+ const fortran_int_t incy, std::complex<float>* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHPR2( &blas_option< UpLo >::value, &n, &alpha, x, &incx, y, &incy,
             ap );
@@ -132,10 +136,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hpr2( Order, UpLo, fortran_int_t n, std::complex<double> alpha,
- const std::complex<double>* x, fortran_int_t incx,
- const std::complex<double>* y, fortran_int_t incy,
- std::complex<double>* ap ) {
+inline void hpr2( Order, UpLo, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* x,
+ const fortran_int_t incx, const std::complex<double>* y,
+ const fortran_int_t incy, std::complex<double>* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHPR2( &blas_option< UpLo >::value, &n, &alpha, x, &incx, y, &incy,
             ap );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/sbmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/sbmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/sbmv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -64,8 +64,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void sbmv( Order, UpLo, int n, int k, float alpha, const float* a,
- int lda, const float* x, int incx, float beta, float* y, int incy ) {
+inline void sbmv( Order, UpLo, const int n, const int k, const float alpha,
+ const float* a, const int lda, const float* x, const int incx,
+ const float beta, float* y, const int incy ) {
     cblas_ssbmv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             k, alpha, a, lda, x, incx, beta, y, incy );
 }
@@ -76,9 +77,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void sbmv( Order, UpLo, int n, int k, double alpha, const double* a,
- int lda, const double* x, int incx, double beta, double* y,
- int incy ) {
+inline void sbmv( Order, UpLo, const int n, const int k, const double alpha,
+ const double* a, const int lda, const double* x, const int incx,
+ const double beta, double* y, const int incy ) {
     cblas_dsbmv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             k, alpha, a, lda, x, incx, beta, y, incy );
 }
@@ -90,8 +91,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void sbmv( Order, UpLo, int n, int k, float alpha, const float* a,
- int lda, const float* x, int incx, float beta, float* y, int incy ) {
+inline void sbmv( Order, UpLo, const int n, const int k, const float alpha,
+ const float* a, const int lda, const float* x, const int incx,
+ const float beta, float* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSsbmv( blas_option< UpLo >::value, n, k, alpha, a, lda, x, incx,
             beta, y, incy );
@@ -103,9 +105,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void sbmv( Order, UpLo, int n, int k, double alpha, const double* a,
- int lda, const double* x, int incx, double beta, double* y,
- int incy ) {
+inline void sbmv( Order, UpLo, const int n, const int k, const double alpha,
+ const double* a, const int lda, const double* x, const int incx,
+ const double beta, double* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -117,9 +119,10 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void sbmv( Order, UpLo, fortran_int_t n, fortran_int_t k, float alpha,
- const float* a, fortran_int_t lda, const float* x, fortran_int_t incx,
- float beta, float* y, fortran_int_t incy ) {
+inline void sbmv( Order, UpLo, const fortran_int_t n, const fortran_int_t k,
+ const float alpha, const float* a, const fortran_int_t lda,
+ const float* x, const fortran_int_t incx, const float beta, float* y,
+ const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSBMV( &blas_option< UpLo >::value, &n, &k, &alpha, a, &lda, x,
             &incx, &beta, y, &incy );
@@ -131,9 +134,10 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void sbmv( Order, UpLo, fortran_int_t n, fortran_int_t k, double alpha,
- const double* a, fortran_int_t lda, const double* x,
- fortran_int_t incx, double beta, double* y, fortran_int_t incy ) {
+inline void sbmv( Order, UpLo, const fortran_int_t n, const fortran_int_t k,
+ const double alpha, const double* a, const fortran_int_t lda,
+ const double* x, const fortran_int_t incx, const double beta,
+ double* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSBMV( &blas_option< UpLo >::value, &n, &k, &alpha, a, &lda, x,
             &incx, &beta, y, &incy );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spmv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spmv( Order, UpLo, int n, float alpha, const float* ap,
- const float* x, int incx, float beta, float* y, int incy ) {
+inline void spmv( Order, UpLo, const int n, const float alpha,
+ const float* ap, const float* x, const int incx, const float beta,
+ float* y, const int incy ) {
     cblas_sspmv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, ap, x, incx, beta, y, incy );
 }
@@ -75,8 +76,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spmv( Order, UpLo, int n, double alpha, const double* ap,
- const double* x, int incx, double beta, double* y, int incy ) {
+inline void spmv( Order, UpLo, const int n, const double alpha,
+ const double* ap, const double* x, const int incx, const double beta,
+ double* y, const int incy ) {
     cblas_dspmv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, ap, x, incx, beta, y, incy );
 }
@@ -88,8 +90,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spmv( Order, UpLo, int n, float alpha, const float* ap,
- const float* x, int incx, float beta, float* y, int incy ) {
+inline void spmv( Order, UpLo, const int n, const float alpha,
+ const float* ap, const float* x, const int incx, const float beta,
+ float* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSspmv( blas_option< UpLo >::value, n, alpha, ap, x, incx, beta, y,
             incy );
@@ -101,8 +104,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spmv( Order, UpLo, int n, double alpha, const double* ap,
- const double* x, int incx, double beta, double* y, int incy ) {
+inline void spmv( Order, UpLo, const int n, const double alpha,
+ const double* ap, const double* x, const int incx, const double beta,
+ double* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -114,9 +118,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spmv( Order, UpLo, fortran_int_t n, float alpha, const float* ap,
- const float* x, fortran_int_t incx, float beta, float* y,
- fortran_int_t incy ) {
+inline void spmv( Order, UpLo, const fortran_int_t n, const float alpha,
+ const float* ap, const float* x, const fortran_int_t incx,
+ const float beta, float* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSPMV( &blas_option< UpLo >::value, &n, &alpha, ap, x, &incx, &beta,
             y, &incy );
@@ -128,9 +132,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spmv( Order, UpLo, fortran_int_t n, double alpha,
- const double* ap, const double* x, fortran_int_t incx, double beta,
- double* y, fortran_int_t incy ) {
+inline void spmv( Order, UpLo, const fortran_int_t n, const double alpha,
+ const double* ap, const double* x, const fortran_int_t incx,
+ const double beta, double* y, const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSPMV( &blas_option< UpLo >::value, &n, &alpha, ap, x, &incx, &beta,
             y, &incy );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr( Order, UpLo, int n, float alpha, const float* x, int incx,
- float* ap ) {
+inline void spr( Order, UpLo, const int n, const float alpha, const float* x,
+ const int incx, float* ap ) {
     cblas_sspr( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, ap );
 }
@@ -75,8 +75,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr( Order, UpLo, int n, double alpha, const double* x, int incx,
- double* ap ) {
+inline void spr( Order, UpLo, const int n, const double alpha,
+ const double* x, const int incx, double* ap ) {
     cblas_dspr( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, ap );
 }
@@ -88,8 +88,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr( Order, UpLo, int n, float alpha, const float* x, int incx,
- float* ap ) {
+inline void spr( Order, UpLo, const int n, const float alpha, const float* x,
+ const int incx, float* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSspr( blas_option< UpLo >::value, n, alpha, x, incx, ap );
 }
@@ -100,8 +100,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr( Order, UpLo, int n, double alpha, const double* x, int incx,
- double* ap ) {
+inline void spr( Order, UpLo, const int n, const double alpha,
+ const double* x, const int incx, double* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -113,8 +113,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr( Order, UpLo, fortran_int_t n, float alpha, const float* x,
- fortran_int_t incx, float* ap ) {
+inline void spr( Order, UpLo, const fortran_int_t n, const float alpha,
+ const float* x, const fortran_int_t incx, float* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSPR( &blas_option< UpLo >::value, &n, &alpha, x, &incx, ap );
 }
@@ -125,8 +125,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr( Order, UpLo, fortran_int_t n, double alpha, const double* x,
- fortran_int_t incx, double* ap ) {
+inline void spr( Order, UpLo, const fortran_int_t n, const double alpha,
+ const double* x, const fortran_int_t incx, double* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSPR( &blas_option< UpLo >::value, &n, &alpha, x, &incx, ap );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/spr2.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr2( Order, UpLo, int n, float alpha, const float* x, int incx,
- const float* y, int incy, float* ap ) {
+inline void spr2( Order, UpLo, const int n, const float alpha, const float* x,
+ const int incx, const float* y, const int incy, float* ap ) {
     cblas_sspr2( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, y, incy, ap );
 }
@@ -75,8 +75,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr2( Order, UpLo, int n, double alpha, const double* x, int incx,
- const double* y, int incy, double* ap ) {
+inline void spr2( Order, UpLo, const int n, const double alpha,
+ const double* x, const int incx, const double* y, const int incy,
+ double* ap ) {
     cblas_dspr2( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, y, incy, ap );
 }
@@ -88,8 +89,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr2( Order, UpLo, int n, float alpha, const float* x, int incx,
- const float* y, int incy, float* ap ) {
+inline void spr2( Order, UpLo, const int n, const float alpha, const float* x,
+ const int incx, const float* y, const int incy, float* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSspr2( blas_option< UpLo >::value, n, alpha, x, incx, y, incy, ap );
 }
@@ -100,8 +101,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr2( Order, UpLo, int n, double alpha, const double* x, int incx,
- const double* y, int incy, double* ap ) {
+inline void spr2( Order, UpLo, const int n, const double alpha,
+ const double* x, const int incx, const double* y, const int incy,
+ double* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -113,8 +115,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr2( Order, UpLo, fortran_int_t n, float alpha, const float* x,
- fortran_int_t incx, const float* y, fortran_int_t incy, float* ap ) {
+inline void spr2( Order, UpLo, const fortran_int_t n, const float alpha,
+ const float* x, const fortran_int_t incx, const float* y,
+ const fortran_int_t incy, float* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSPR2( &blas_option< UpLo >::value, &n, &alpha, x, &incx, y, &incy,
             ap );
@@ -126,8 +129,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void spr2( Order, UpLo, fortran_int_t n, double alpha, const double* x,
- fortran_int_t incx, const double* y, fortran_int_t incy, double* ap ) {
+inline void spr2( Order, UpLo, const fortran_int_t n, const double alpha,
+ const double* x, const fortran_int_t incx, const double* y,
+ const fortran_int_t incy, double* ap ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSPR2( &blas_option< UpLo >::value, &n, &alpha, x, &incx, y, &incy,
             ap );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/symv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/symv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/symv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void symv( Order, UpLo, int n, float alpha, const float* a, int lda,
- const float* x, int incx, float beta, float* y, int incy ) {
+inline void symv( Order, UpLo, const int n, const float alpha, const float* a,
+ const int lda, const float* x, const int incx, const float beta,
+ float* y, const int incy ) {
     cblas_ssymv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, a, lda, x, incx, beta, y, incy );
 }
@@ -75,8 +76,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void symv( Order, UpLo, int n, double alpha, const double* a, int lda,
- const double* x, int incx, double beta, double* y, int incy ) {
+inline void symv( Order, UpLo, const int n, const double alpha,
+ const double* a, const int lda, const double* x, const int incx,
+ const double beta, double* y, const int incy ) {
     cblas_dsymv( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, a, lda, x, incx, beta, y, incy );
 }
@@ -88,8 +90,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void symv( Order, UpLo, int n, float alpha, const float* a, int lda,
- const float* x, int incx, float beta, float* y, int incy ) {
+inline void symv( Order, UpLo, const int n, const float alpha, const float* a,
+ const int lda, const float* x, const int incx, const float beta,
+ float* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSsymv( blas_option< UpLo >::value, n, alpha, a, lda, x, incx, beta,
             y, incy );
@@ -101,8 +104,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void symv( Order, UpLo, int n, double alpha, const double* a, int lda,
- const double* x, int incx, double beta, double* y, int incy ) {
+inline void symv( Order, UpLo, const int n, const double alpha,
+ const double* a, const int lda, const double* x, const int incx,
+ const double beta, double* y, const int incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -114,9 +118,10 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void symv( Order, UpLo, fortran_int_t n, float alpha, const float* a,
- fortran_int_t lda, const float* x, fortran_int_t incx, float beta,
- float* y, fortran_int_t incy ) {
+inline void symv( Order, UpLo, const fortran_int_t n, const float alpha,
+ const float* a, const fortran_int_t lda, const float* x,
+ const fortran_int_t incx, const float beta, float* y,
+ const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSYMV( &blas_option< UpLo >::value, &n, &alpha, a, &lda, x, &incx,
             &beta, y, &incy );
@@ -128,9 +133,10 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void symv( Order, UpLo, fortran_int_t n, double alpha, const double* a,
- fortran_int_t lda, const double* x, fortran_int_t incx, double beta,
- double* y, fortran_int_t incy ) {
+inline void symv( Order, UpLo, const fortran_int_t n, const double alpha,
+ const double* a, const fortran_int_t lda, const double* x,
+ const fortran_int_t incx, const double beta, double* y,
+ const fortran_int_t incy ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSYMV( &blas_option< UpLo >::value, &n, &alpha, a, &lda, x, &incx,
             &beta, y, &incy );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr( Order, UpLo, int n, float alpha, const float* x, int incx,
- float* a, int lda ) {
+inline void syr( Order, UpLo, const int n, const float alpha, const float* x,
+ const int incx, float* a, const int lda ) {
     cblas_ssyr( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, a, lda );
 }
@@ -75,8 +75,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr( Order, UpLo, int n, double alpha, const double* x, int incx,
- double* a, int lda ) {
+inline void syr( Order, UpLo, const int n, const double alpha,
+ const double* x, const int incx, double* a, const int lda ) {
     cblas_dsyr( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, a, lda );
 }
@@ -88,8 +88,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr( Order, UpLo, int n, float alpha, const float* x, int incx,
- float* a, int lda ) {
+inline void syr( Order, UpLo, const int n, const float alpha, const float* x,
+ const int incx, float* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSsyr( blas_option< UpLo >::value, n, alpha, x, incx, a, lda );
 }
@@ -100,8 +100,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr( Order, UpLo, int n, double alpha, const double* x, int incx,
- double* a, int lda ) {
+inline void syr( Order, UpLo, const int n, const double alpha,
+ const double* x, const int incx, double* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDsyr( blas_option< UpLo >::value, n, alpha, x, incx, a, lda );
 }
@@ -113,8 +113,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr( Order, UpLo, fortran_int_t n, float alpha, const float* x,
- fortran_int_t incx, float* a, fortran_int_t lda ) {
+inline void syr( Order, UpLo, const fortran_int_t n, const float alpha,
+ const float* x, const fortran_int_t incx, float* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSYR( &blas_option< UpLo >::value, &n, &alpha, x, &incx, a, &lda );
 }
@@ -125,8 +126,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr( Order, UpLo, fortran_int_t n, double alpha, const double* x,
- fortran_int_t incx, double* a, fortran_int_t lda ) {
+inline void syr( Order, UpLo, const fortran_int_t n, const double alpha,
+ const double* x, const fortran_int_t incx, double* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSYR( &blas_option< UpLo >::value, &n, &alpha, x, &incx, a, &lda );
 }

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr2.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr2.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/syr2.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr2( Order, UpLo, int n, float alpha, const float* x, int incx,
- const float* y, int incy, float* a, int lda ) {
+inline void syr2( Order, UpLo, const int n, const float alpha, const float* x,
+ const int incx, const float* y, const int incy, float* a,
+ const int lda ) {
     cblas_ssyr2( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, y, incy, a, lda );
 }
@@ -75,8 +76,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr2( Order, UpLo, int n, double alpha, const double* x, int incx,
- const double* y, int incy, double* a, int lda ) {
+inline void syr2( Order, UpLo, const int n, const double alpha,
+ const double* x, const int incx, const double* y, const int incy,
+ double* a, const int lda ) {
     cblas_dsyr2( cblas_option< Order >::value, cblas_option< UpLo >::value, n,
             alpha, x, incx, y, incy, a, lda );
 }
@@ -88,8 +90,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr2( Order, UpLo, int n, float alpha, const float* x, int incx,
- const float* y, int incy, float* a, int lda ) {
+inline void syr2( Order, UpLo, const int n, const float alpha, const float* x,
+ const int incx, const float* y, const int incy, float* a,
+ const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSsyr2( blas_option< UpLo >::value, n, alpha, x, incx, y, incy, a,
             lda );
@@ -101,8 +104,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr2( Order, UpLo, int n, double alpha, const double* x, int incx,
- const double* y, int incy, double* a, int lda ) {
+inline void syr2( Order, UpLo, const int n, const double alpha,
+ const double* x, const int incx, const double* y, const int incy,
+ double* a, const int lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -114,9 +118,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr2( Order, UpLo, fortran_int_t n, float alpha, const float* x,
- fortran_int_t incx, const float* y, fortran_int_t incy, float* a,
- fortran_int_t lda ) {
+inline void syr2( Order, UpLo, const fortran_int_t n, const float alpha,
+ const float* x, const fortran_int_t incx, const float* y,
+ const fortran_int_t incy, float* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSYR2( &blas_option< UpLo >::value, &n, &alpha, x, &incx, y, &incy,
             a, &lda );
@@ -128,9 +132,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void syr2( Order, UpLo, fortran_int_t n, double alpha, const double* x,
- fortran_int_t incx, const double* y, fortran_int_t incy, double* a,
- fortran_int_t lda ) {
+inline void syr2( Order, UpLo, const fortran_int_t n, const double alpha,
+ const double* x, const fortran_int_t incx, const double* y,
+ const fortran_int_t incy, double* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSYR2( &blas_option< UpLo >::value, &n, &alpha, x, &incx, y, &incy,
             a, &lda );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbmv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -66,8 +66,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, int n, int k, const float* a,
- int lda, float* x, int incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const float* a, const int lda, float* x, const int incx ) {
     cblas_stbmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, k,
             a, lda, x, incx );
@@ -79,8 +79,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, int n, int k, const double* a,
- int lda, double* x, int incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const double* a, const int lda, double* x, const int incx ) {
     cblas_dtbmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, k,
             a, lda, x, incx );
@@ -92,9 +92,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, int n, int k,
- const std::complex<float>* a, int lda, std::complex<float>* x,
- int incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const std::complex<float>* a, const int lda, std::complex<float>* x,
+ const int incx ) {
     cblas_ctbmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, k,
             a, lda, x, incx );
@@ -106,9 +106,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, int n, int k,
- const std::complex<double>* a, int lda, std::complex<double>* x,
- int incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const std::complex<double>* a, const int lda, std::complex<double>* x,
+ const int incx ) {
     cblas_ztbmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, k,
             a, lda, x, incx );
@@ -121,8 +121,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, int n, int k, const float* a,
- int lda, float* x, int incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const float* a, const int lda, float* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasStbmv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, k, a, lda, x, incx );
@@ -134,8 +134,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, int n, int k, const double* a,
- int lda, double* x, int incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const double* a, const int lda, double* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -146,9 +146,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, int n, int k,
- const std::complex<float>* a, int lda, std::complex<float>* x,
- int incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const std::complex<float>* a, const int lda, std::complex<float>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCtbmv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, k, a, lda, x, incx );
@@ -160,9 +160,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, int n, int k,
- const std::complex<double>* a, int lda, std::complex<double>* x,
- int incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const std::complex<double>* a, const int lda, std::complex<double>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -174,8 +174,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, fortran_int_t n, fortran_int_t k,
- const float* a, fortran_int_t lda, float* x, fortran_int_t incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const fortran_int_t k, const float* a, const fortran_int_t lda,
+ float* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_STBMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, &k, a, &lda, x, &incx );
@@ -187,8 +188,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, fortran_int_t n, fortran_int_t k,
- const double* a, fortran_int_t lda, double* x, fortran_int_t incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const fortran_int_t k, const double* a, const fortran_int_t lda,
+ double* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DTBMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, &k, a, &lda, x, &incx );
@@ -200,9 +202,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, fortran_int_t n, fortran_int_t k,
- const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* x, fortran_int_t incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* x,
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CTBMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, &k, a, &lda, x, &incx );
@@ -214,9 +217,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbmv( Order, UpLo, Trans, Diag, fortran_int_t n, fortran_int_t k,
- const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* x, fortran_int_t incx ) {
+inline void tbmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* x,
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZTBMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, &k, a, &lda, x, &incx );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tbsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -66,8 +66,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, int n, int k, const float* a,
- int lda, float* x, int incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const float* a, const int lda, float* x, const int incx ) {
     cblas_stbsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, k,
             a, lda, x, incx );
@@ -79,8 +79,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, int n, int k, const double* a,
- int lda, double* x, int incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const double* a, const int lda, double* x, const int incx ) {
     cblas_dtbsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, k,
             a, lda, x, incx );
@@ -92,9 +92,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, int n, int k,
- const std::complex<float>* a, int lda, std::complex<float>* x,
- int incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const std::complex<float>* a, const int lda, std::complex<float>* x,
+ const int incx ) {
     cblas_ctbsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, k,
             a, lda, x, incx );
@@ -106,9 +106,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, int n, int k,
- const std::complex<double>* a, int lda, std::complex<double>* x,
- int incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const std::complex<double>* a, const int lda, std::complex<double>* x,
+ const int incx ) {
     cblas_ztbsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, k,
             a, lda, x, incx );
@@ -121,8 +121,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, int n, int k, const float* a,
- int lda, float* x, int incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const float* a, const int lda, float* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasStbsv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, k, a, lda, x, incx );
@@ -134,8 +134,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, int n, int k, const double* a,
- int lda, double* x, int incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const double* a, const int lda, double* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -146,9 +146,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, int n, int k,
- const std::complex<float>* a, int lda, std::complex<float>* x,
- int incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const std::complex<float>* a, const int lda, std::complex<float>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCtbsv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, k, a, lda, x, incx );
@@ -160,9 +160,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, int n, int k,
- const std::complex<double>* a, int lda, std::complex<double>* x,
- int incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const int n, const int k,
+ const std::complex<double>* a, const int lda, std::complex<double>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -174,8 +174,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, fortran_int_t n, fortran_int_t k,
- const float* a, fortran_int_t lda, float* x, fortran_int_t incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const fortran_int_t k, const float* a, const fortran_int_t lda,
+ float* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_STBSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, &k, a, &lda, x, &incx );
@@ -187,8 +188,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, fortran_int_t n, fortran_int_t k,
- const double* a, fortran_int_t lda, double* x, fortran_int_t incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const fortran_int_t k, const double* a, const fortran_int_t lda,
+ double* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DTBSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, &k, a, &lda, x, &incx );
@@ -200,9 +202,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, fortran_int_t n, fortran_int_t k,
- const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* x, fortran_int_t incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* x,
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CTBSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, &k, a, &lda, x, &incx );
@@ -214,9 +217,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tbsv( Order, UpLo, Trans, Diag, fortran_int_t n, fortran_int_t k,
- const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* x, fortran_int_t incx ) {
+inline void tbsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* x,
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZTBSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, &k, a, &lda, x, &incx );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpmv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -65,8 +65,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, int n, const float* ap, float* x,
- int incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const int n, const float* ap,
+ float* x, const int incx ) {
     cblas_stpmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, ap,
             x, incx );
@@ -78,8 +78,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, int n, const double* ap,
- double* x, int incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const int n, const double* ap,
+ double* x, const int incx ) {
     cblas_dtpmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, ap,
             x, incx );
@@ -91,8 +91,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, int n,
- const std::complex<float>* ap, std::complex<float>* x, int incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<float>* ap, std::complex<float>* x,
+ const int incx ) {
     cblas_ctpmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, ap,
             x, incx );
@@ -104,8 +105,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, int n,
- const std::complex<double>* ap, std::complex<double>* x, int incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<double>* ap, std::complex<double>* x,
+ const int incx ) {
     cblas_ztpmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, ap,
             x, incx );
@@ -118,8 +120,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, int n, const float* ap, float* x,
- int incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const int n, const float* ap,
+ float* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasStpmv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, ap, x, incx );
@@ -131,8 +133,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, int n, const double* ap,
- double* x, int incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const int n, const double* ap,
+ double* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -143,8 +145,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, int n,
- const std::complex<float>* ap, std::complex<float>* x, int incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<float>* ap, std::complex<float>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCtpmv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, ap, x, incx );
@@ -156,8 +159,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, int n,
- const std::complex<double>* ap, std::complex<double>* x, int incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<double>* ap, std::complex<double>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -169,8 +173,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, fortran_int_t n, const float* ap,
- float* x, fortran_int_t incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const float* ap, float* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_STPMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, ap, x, &incx );
@@ -182,8 +186,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, fortran_int_t n, const double* ap,
- double* x, fortran_int_t incx ) {
+inline void tpmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const double* ap, double* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DTPMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, ap, x, &incx );
@@ -195,9 +199,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, fortran_int_t n,
+inline void tpmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
         const std::complex<float>* ap, std::complex<float>* x,
- fortran_int_t incx ) {
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CTPMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, ap, x, &incx );
@@ -209,9 +213,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpmv( Order, UpLo, Trans, Diag, fortran_int_t n,
+inline void tpmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
         const std::complex<double>* ap, std::complex<double>* x,
- fortran_int_t incx ) {
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZTPMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, ap, x, &incx );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/tpsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -65,8 +65,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, int n, const float* ap, float* x,
- int incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const int n, const float* ap,
+ float* x, const int incx ) {
     cblas_stpsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, ap,
             x, incx );
@@ -78,8 +78,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, int n, const double* ap,
- double* x, int incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const int n, const double* ap,
+ double* x, const int incx ) {
     cblas_dtpsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, ap,
             x, incx );
@@ -91,8 +91,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, int n,
- const std::complex<float>* ap, std::complex<float>* x, int incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<float>* ap, std::complex<float>* x,
+ const int incx ) {
     cblas_ctpsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, ap,
             x, incx );
@@ -104,8 +105,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, int n,
- const std::complex<double>* ap, std::complex<double>* x, int incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<double>* ap, std::complex<double>* x,
+ const int incx ) {
     cblas_ztpsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, ap,
             x, incx );
@@ -118,8 +120,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, int n, const float* ap, float* x,
- int incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const int n, const float* ap,
+ float* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasStpsv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, ap, x, incx );
@@ -131,8 +133,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, int n, const double* ap,
- double* x, int incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const int n, const double* ap,
+ double* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -143,8 +145,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, int n,
- const std::complex<float>* ap, std::complex<float>* x, int incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<float>* ap, std::complex<float>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCtpsv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, ap, x, incx );
@@ -156,8 +159,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, int n,
- const std::complex<double>* ap, std::complex<double>* x, int incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<double>* ap, std::complex<double>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -169,8 +173,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, fortran_int_t n, const float* ap,
- float* x, fortran_int_t incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const float* ap, float* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_STPSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, ap, x, &incx );
@@ -182,8 +186,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, fortran_int_t n, const double* ap,
- double* x, fortran_int_t incx ) {
+inline void tpsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const double* ap, double* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DTPSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, ap, x, &incx );
@@ -195,9 +199,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, fortran_int_t n,
+inline void tpsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
         const std::complex<float>* ap, std::complex<float>* x,
- fortran_int_t incx ) {
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CTPSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, ap, x, &incx );
@@ -209,9 +213,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void tpsv( Order, UpLo, Trans, Diag, fortran_int_t n,
+inline void tpsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
         const std::complex<double>* ap, std::complex<double>* x,
- fortran_int_t incx ) {
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZTPSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, ap, x, &incx );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trmv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trmv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trmv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -65,8 +65,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, int n, const float* a, int lda,
- float* x, int incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const int n, const float* a,
+ const int lda, float* x, const int incx ) {
     cblas_strmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, a,
             lda, x, incx );
@@ -78,8 +78,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, int n, const double* a, int lda,
- double* x, int incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const int n, const double* a,
+ const int lda, double* x, const int incx ) {
     cblas_dtrmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, a,
             lda, x, incx );
@@ -91,9 +91,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, int n,
- const std::complex<float>* a, int lda, std::complex<float>* x,
- int incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<float>* a, const int lda, std::complex<float>* x,
+ const int incx ) {
     cblas_ctrmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, a,
             lda, x, incx );
@@ -105,9 +105,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, int n,
- const std::complex<double>* a, int lda, std::complex<double>* x,
- int incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<double>* a, const int lda, std::complex<double>* x,
+ const int incx ) {
     cblas_ztrmv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, a,
             lda, x, incx );
@@ -120,8 +120,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, int n, const float* a, int lda,
- float* x, int incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const int n, const float* a,
+ const int lda, float* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasStrmv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, a, lda, x, incx );
@@ -133,8 +133,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, int n, const double* a, int lda,
- double* x, int incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const int n, const double* a,
+ const int lda, double* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -145,9 +145,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, int n,
- const std::complex<float>* a, int lda, std::complex<float>* x,
- int incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<float>* a, const int lda, std::complex<float>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -158,9 +158,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, int n,
- const std::complex<double>* a, int lda, std::complex<double>* x,
- int incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<double>* a, const int lda, std::complex<double>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -172,8 +172,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, fortran_int_t n, const float* a,
- fortran_int_t lda, float* x, fortran_int_t incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const float* a, const fortran_int_t lda, float* x,
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_STRMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, a, &lda, x, &incx );
@@ -185,8 +186,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, fortran_int_t n, const double* a,
- fortran_int_t lda, double* x, fortran_int_t incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const double* a, const fortran_int_t lda, double* x,
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DTRMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, a, &lda, x, &incx );
@@ -198,9 +200,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, fortran_int_t n,
- const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* x, fortran_int_t incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CTRMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, a, &lda, x, &incx );
@@ -212,9 +214,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trmv( Order, UpLo, Trans, Diag, fortran_int_t n,
- const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* x, fortran_int_t incx ) {
+inline void trmv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZTRMV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, a, &lda, x, &incx );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level2/trsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -65,8 +65,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, int n, const float* a, int lda,
- float* x, int incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const int n, const float* a,
+ const int lda, float* x, const int incx ) {
     cblas_strsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, a,
             lda, x, incx );
@@ -78,8 +78,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, int n, const double* a, int lda,
- double* x, int incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const int n, const double* a,
+ const int lda, double* x, const int incx ) {
     cblas_dtrsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, a,
             lda, x, incx );
@@ -91,9 +91,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, int n,
- const std::complex<float>* a, int lda, std::complex<float>* x,
- int incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<float>* a, const int lda, std::complex<float>* x,
+ const int incx ) {
     cblas_ctrsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, a,
             lda, x, incx );
@@ -105,9 +105,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, int n,
- const std::complex<double>* a, int lda, std::complex<double>* x,
- int incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<double>* a, const int lda, std::complex<double>* x,
+ const int incx ) {
     cblas_ztrsv( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, cblas_option< Diag >::value, n, a,
             lda, x, incx );
@@ -120,8 +120,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, int n, const float* a, int lda,
- float* x, int incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const int n, const float* a,
+ const int lda, float* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasStrsv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, a, lda, x, incx );
@@ -133,8 +133,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, int n, const double* a, int lda,
- double* x, int incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const int n, const double* a,
+ const int lda, double* x, const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDtrsv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, a, lda, x, incx );
@@ -146,9 +146,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, int n,
- const std::complex<float>* a, int lda, std::complex<float>* x,
- int incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<float>* a, const int lda, std::complex<float>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCtrsv( blas_option< UpLo >::value, blas_option< Trans >::value,
             blas_option< Diag >::value, n, a, lda, x, incx );
@@ -160,9 +160,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, int n,
- const std::complex<double>* a, int lda, std::complex<double>* x,
- int incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const int n,
+ const std::complex<double>* a, const int lda, std::complex<double>* x,
+ const int incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -174,8 +174,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, fortran_int_t n, const float* a,
- fortran_int_t lda, float* x, fortran_int_t incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const float* a, const fortran_int_t lda, float* x,
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_STRSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, a, &lda, x, &incx );
@@ -187,8 +188,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, fortran_int_t n, const double* a,
- fortran_int_t lda, double* x, fortran_int_t incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const double* a, const fortran_int_t lda, double* x,
+ const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DTRSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, a, &lda, x, &incx );
@@ -200,9 +202,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, fortran_int_t n,
- const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* x, fortran_int_t incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CTRSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, a, &lda, x, &incx );
@@ -214,9 +216,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans, typename Diag >
-inline void trsv( Order, UpLo, Trans, Diag, fortran_int_t n,
- const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* x, fortran_int_t incx ) {
+inline void trsv( Order, UpLo, Trans, Diag, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* x, const fortran_int_t incx ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZTRSV( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &blas_option< Diag >::value, &n, a, &lda, x, &incx );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/gemm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/gemm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/gemm.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,9 +63,10 @@
 // * float value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, int m, int n, int k, float alpha,
- const float* a, int lda, const float* b, int ldb, float beta,
- float* c, int ldc ) {
+inline void gemm( Order, TransA, TransB, const int m, const int n,
+ const int k, const float alpha, const float* a, const int lda,
+ const float* b, const int ldb, const float beta, float* c,
+ const int ldc ) {
     cblas_sgemm( cblas_option< Order >::value, cblas_option< TransA >::value,
             cblas_option< TransB >::value, m, n, k, alpha, a, lda, b, ldb,
             beta, c, ldc );
@@ -77,9 +78,10 @@
 // * double value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, int m, int n, int k, double alpha,
- const double* a, int lda, const double* b, int ldb, double beta,
- double* c, int ldc ) {
+inline void gemm( Order, TransA, TransB, const int m, const int n,
+ const int k, const double alpha, const double* a, const int lda,
+ const double* b, const int ldb, const double beta, double* c,
+ const int ldc ) {
     cblas_dgemm( cblas_option< Order >::value, cblas_option< TransA >::value,
             cblas_option< TransB >::value, m, n, k, alpha, a, lda, b, ldb,
             beta, c, ldc );
@@ -91,10 +93,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, int m, int n, int k,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void gemm( Order, TransA, TransB, const int m, const int n,
+ const int k, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda,
+ const std::complex<float>* b, const int ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     cblas_cgemm( cblas_option< Order >::value, cblas_option< TransA >::value,
             cblas_option< TransB >::value, m, n, k, &alpha, a, lda, b, ldb,
             &beta, c, ldc );
@@ -106,10 +110,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, int m, int n, int k,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, std::complex<double> beta,
- std::complex<double>* c, int ldc ) {
+inline void gemm( Order, TransA, TransB, const int m, const int n,
+ const int k, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda,
+ const std::complex<double>* b, const int ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const int ldc ) {
     cblas_zgemm( cblas_option< Order >::value, cblas_option< TransA >::value,
             cblas_option< TransB >::value, m, n, k, &alpha, a, lda, b, ldb,
             &beta, c, ldc );
@@ -122,9 +128,10 @@
 // * float value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, int m, int n, int k, float alpha,
- const float* a, int lda, const float* b, int ldb, float beta,
- float* c, int ldc ) {
+inline void gemm( Order, TransA, TransB, const int m, const int n,
+ const int k, const float alpha, const float* a, const int lda,
+ const float* b, const int ldb, const float beta, float* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSgemm( blas_option< TransA >::value, blas_option< TransB >::value,
             m, n, k, alpha, a, lda, b, ldb, beta, c, ldc );
@@ -136,9 +143,10 @@
 // * double value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, int m, int n, int k, double alpha,
- const double* a, int lda, const double* b, int ldb, double beta,
- double* c, int ldc ) {
+inline void gemm( Order, TransA, TransB, const int m, const int n,
+ const int k, const double alpha, const double* a, const int lda,
+ const double* b, const int ldb, const double beta, double* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDgemm( blas_option< TransA >::value, blas_option< TransB >::value,
             m, n, k, alpha, a, lda, b, ldb, beta, c, ldc );
@@ -150,10 +158,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, int m, int n, int k,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void gemm( Order, TransA, TransB, const int m, const int n,
+ const int k, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda,
+ const std::complex<float>* b, const int ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCgemm( blas_option< TransA >::value, blas_option< TransB >::value,
             m, n, k, alpha, a, lda, b, ldb, beta, c, ldc );
@@ -165,10 +175,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, int m, int n, int k,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, std::complex<double> beta,
- std::complex<double>* c, int ldc ) {
+inline void gemm( Order, TransA, TransB, const int m, const int n,
+ const int k, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda,
+ const std::complex<double>* b, const int ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasZgemm( blas_option< TransA >::value, blas_option< TransB >::value,
             m, n, k, alpha, a, lda, b, ldb, beta, c, ldc );
@@ -181,10 +193,11 @@
 // * float value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, fortran_int_t m, fortran_int_t n,
- fortran_int_t k, float alpha, const float* a, fortran_int_t lda,
- const float* b, fortran_int_t ldb, float beta, float* c,
- fortran_int_t ldc ) {
+inline void gemm( Order, TransA, TransB, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const float alpha,
+ const float* a, const fortran_int_t lda, const float* b,
+ const fortran_int_t ldb, const float beta, float* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SGEMM( &blas_option< TransA >::value, &blas_option< TransB >::value,
             &m, &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );
@@ -196,10 +209,11 @@
 // * double value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, fortran_int_t m, fortran_int_t n,
- fortran_int_t k, double alpha, const double* a, fortran_int_t lda,
- const double* b, fortran_int_t ldb, double beta, double* c,
- fortran_int_t ldc ) {
+inline void gemm( Order, TransA, TransB, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const double alpha,
+ const double* a, const fortran_int_t lda, const double* b,
+ const fortran_int_t ldb, const double beta, double* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DGEMM( &blas_option< TransA >::value, &blas_option< TransB >::value,
             &m, &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );
@@ -211,11 +225,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, fortran_int_t m, fortran_int_t n,
- fortran_int_t k, std::complex<float> alpha,
- const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float> beta, std::complex<float>* c, fortran_int_t ldc ) {
+inline void gemm( Order, TransA, TransB, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* b,
+ const fortran_int_t ldb, const std::complex<float> beta,
+ std::complex<float>* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CGEMM( &blas_option< TransA >::value, &blas_option< TransB >::value,
             &m, &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );
@@ -227,12 +242,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename TransA, typename TransB >
-inline void gemm( Order, TransA, TransB, fortran_int_t m, fortran_int_t n,
- fortran_int_t k, std::complex<double> alpha,
- const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double> beta, std::complex<double>* c,
- fortran_int_t ldc ) {
+inline void gemm( Order, TransA, TransB, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* b,
+ const fortran_int_t ldb, const std::complex<double> beta,
+ std::complex<double>* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZGEMM( &blas_option< TransA >::value, &blas_option< TransB >::value,
             &m, &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/hemm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/hemm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/hemm.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,10 +63,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemm( Order, char side, UpLo, int m, int n,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void hemm( Order, const char side, UpLo, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* b, const int ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     cblas_chemm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, m, n, &alpha, a, lda, b, ldb, &beta,
             c, ldc );
@@ -78,10 +79,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemm( Order, char side, UpLo, int m, int n,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, std::complex<double> beta,
- std::complex<double>* c, int ldc ) {
+inline void hemm( Order, const char side, UpLo, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* b, const int ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const int ldc ) {
     cblas_zhemm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, m, n, &alpha, a, lda, b, ldb, &beta,
             c, ldc );
@@ -94,10 +96,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemm( Order, char side, UpLo, int m, int n,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void hemm( Order, const char side, UpLo, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* b, const int ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasChemm( side, blas_option< UpLo >::value, m, n, alpha, a, lda, b,
             ldb, beta, c, ldc );
@@ -109,10 +112,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemm( Order, char side, UpLo, int m, int n,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, std::complex<double> beta,
- std::complex<double>* c, int ldc ) {
+inline void hemm( Order, const char side, UpLo, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* b, const int ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -124,10 +128,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemm( Order, char side, UpLo, fortran_int_t m, fortran_int_t n,
- std::complex<float> alpha, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float> beta, std::complex<float>* c, fortran_int_t ldc ) {
+inline void hemm( Order, const char side, UpLo, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<float> alpha,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHEMM( &side, &blas_option< UpLo >::value, &m, &n, &alpha, a, &lda,
             b, &ldb, &beta, c, &ldc );
@@ -139,11 +145,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void hemm( Order, char side, UpLo, fortran_int_t m, fortran_int_t n,
- std::complex<double> alpha, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double> beta, std::complex<double>* c,
- fortran_int_t ldc ) {
+inline void hemm( Order, const char side, UpLo, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<double> alpha,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHEMM( &side, &blas_option< UpLo >::value, &m, &n, &alpha, a, &lda,
             b, &ldb, &beta, c, &ldc );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/her2k.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/her2k.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/her2k.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -64,10 +64,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void her2k( Order, UpLo, Trans, int n, int k,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, float beta,
- std::complex<float>* c, int ldc ) {
+inline void her2k( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* b, const int ldb,
+ const float beta, std::complex<float>* c, const int ldc ) {
     cblas_cher2k( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, &alpha, a, lda, b, ldb, beta,
             c, ldc );
@@ -79,10 +79,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void her2k( Order, UpLo, Trans, int n, int k,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, double beta,
- std::complex<double>* c, int ldc ) {
+inline void her2k( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* b, const int ldb,
+ const double beta, std::complex<double>* c, const int ldc ) {
     cblas_zher2k( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, &alpha, a, lda, b, ldb, beta,
             c, ldc );
@@ -95,10 +95,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void her2k( Order, UpLo, Trans, int n, int k,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, float beta,
- std::complex<float>* c, int ldc ) {
+inline void her2k( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* b, const int ldb,
+ const float beta, std::complex<float>* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCher2k( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, b, ldb, beta, c, ldc );
@@ -110,10 +110,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void her2k( Order, UpLo, Trans, int n, int k,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, double beta,
- std::complex<double>* c, int ldc ) {
+inline void her2k( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* b, const int ldb,
+ const double beta, std::complex<double>* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -125,10 +125,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void her2k( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- std::complex<float> alpha, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* b, fortran_int_t ldb,
- float beta, std::complex<float>* c, fortran_int_t ldc ) {
+inline void her2k( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<float> alpha,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ const float beta, std::complex<float>* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHER2K( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );
@@ -140,10 +141,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void her2k( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- std::complex<double> alpha, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* b, fortran_int_t ldb,
- double beta, std::complex<double>* c, fortran_int_t ldc ) {
+inline void her2k( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<double> alpha,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ const double beta, std::complex<double>* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHER2K( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/herk.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/herk.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/herk.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -64,9 +64,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void herk( Order, UpLo, Trans, int n, int k, float alpha,
- const std::complex<float>* a, int lda, float beta,
- std::complex<float>* c, int ldc ) {
+inline void herk( Order, UpLo, Trans, const int n, const int k,
+ const float alpha, const std::complex<float>* a, const int lda,
+ const float beta, std::complex<float>* c, const int ldc ) {
     cblas_cherk( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, alpha, a, lda, beta, c, ldc );
 }
@@ -77,9 +77,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void herk( Order, UpLo, Trans, int n, int k, double alpha,
- const std::complex<double>* a, int lda, double beta,
- std::complex<double>* c, int ldc ) {
+inline void herk( Order, UpLo, Trans, const int n, const int k,
+ const double alpha, const std::complex<double>* a, const int lda,
+ const double beta, std::complex<double>* c, const int ldc ) {
     cblas_zherk( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, alpha, a, lda, beta, c, ldc );
 }
@@ -91,9 +91,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void herk( Order, UpLo, Trans, int n, int k, float alpha,
- const std::complex<float>* a, int lda, float beta,
- std::complex<float>* c, int ldc ) {
+inline void herk( Order, UpLo, Trans, const int n, const int k,
+ const float alpha, const std::complex<float>* a, const int lda,
+ const float beta, std::complex<float>* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCherk( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, beta, c, ldc );
@@ -105,9 +105,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void herk( Order, UpLo, Trans, int n, int k, double alpha,
- const std::complex<double>* a, int lda, double beta,
- std::complex<double>* c, int ldc ) {
+inline void herk( Order, UpLo, Trans, const int n, const int k,
+ const double alpha, const std::complex<double>* a, const int lda,
+ const double beta, std::complex<double>* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -119,9 +119,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void herk( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- float alpha, const std::complex<float>* a, fortran_int_t lda,
- float beta, std::complex<float>* c, fortran_int_t ldc ) {
+inline void herk( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const float alpha,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const float beta, std::complex<float>* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CHERK( &blas_option< UpLo >::value, &blas_option< Trans >::value, &n,
             &k, &alpha, a, &lda, &beta, c, &ldc );
@@ -133,9 +134,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void herk( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- double alpha, const std::complex<double>* a, fortran_int_t lda,
- double beta, std::complex<double>* c, fortran_int_t ldc ) {
+inline void herk( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const double alpha,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const double beta, std::complex<double>* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZHERK( &blas_option< UpLo >::value, &blas_option< Trans >::value, &n,
             &k, &alpha, a, &lda, &beta, c, &ldc );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/symm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/symm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/symm.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,9 +63,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, int m, int n, float alpha,
- const float* a, int lda, const float* b, int ldb, float beta,
- float* c, int ldc ) {
+inline void symm( Order, const char side, UpLo, const int m, const int n,
+ const float alpha, const float* a, const int lda, const float* b,
+ const int ldb, const float beta, float* c, const int ldc ) {
     cblas_ssymm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, m, n, alpha, a, lda, b, ldb, beta, c,
             ldc );
@@ -77,9 +77,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, int m, int n, double alpha,
- const double* a, int lda, const double* b, int ldb, double beta,
- double* c, int ldc ) {
+inline void symm( Order, const char side, UpLo, const int m, const int n,
+ const double alpha, const double* a, const int lda, const double* b,
+ const int ldb, const double beta, double* c, const int ldc ) {
     cblas_dsymm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, m, n, alpha, a, lda, b, ldb, beta, c,
             ldc );
@@ -91,10 +91,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, int m, int n,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void symm( Order, const char side, UpLo, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* b, const int ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     cblas_csymm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, m, n, &alpha, a, lda, b, ldb, &beta,
             c, ldc );
@@ -106,10 +107,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, int m, int n,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, std::complex<double> beta,
- std::complex<double>* c, int ldc ) {
+inline void symm( Order, const char side, UpLo, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* b, const int ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const int ldc ) {
     cblas_zsymm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, m, n, &alpha, a, lda, b, ldb, &beta,
             c, ldc );
@@ -122,9 +124,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, int m, int n, float alpha,
- const float* a, int lda, const float* b, int ldb, float beta,
- float* c, int ldc ) {
+inline void symm( Order, const char side, UpLo, const int m, const int n,
+ const float alpha, const float* a, const int lda, const float* b,
+ const int ldb, const float beta, float* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSsymm( side, blas_option< UpLo >::value, m, n, alpha, a, lda, b,
             ldb, beta, c, ldc );
@@ -136,9 +138,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, int m, int n, double alpha,
- const double* a, int lda, const double* b, int ldb, double beta,
- double* c, int ldc ) {
+inline void symm( Order, const char side, UpLo, const int m, const int n,
+ const double alpha, const double* a, const int lda, const double* b,
+ const int ldb, const double beta, double* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDsymm( side, blas_option< UpLo >::value, m, n, alpha, a, lda, b,
             ldb, beta, c, ldc );
@@ -150,10 +152,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, int m, int n,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void symm( Order, const char side, UpLo, const int m, const int n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* b, const int ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCsymm( side, blas_option< UpLo >::value, m, n, alpha, a, lda, b,
             ldb, beta, c, ldc );
@@ -165,10 +168,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, int m, int n,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, std::complex<double> beta,
- std::complex<double>* c, int ldc ) {
+inline void symm( Order, const char side, UpLo, const int m, const int n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* b, const int ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -180,9 +184,10 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, fortran_int_t m, fortran_int_t n,
- float alpha, const float* a, fortran_int_t lda, const float* b,
- fortran_int_t ldb, float beta, float* c, fortran_int_t ldc ) {
+inline void symm( Order, const char side, UpLo, const fortran_int_t m,
+ const fortran_int_t n, const float alpha, const float* a,
+ const fortran_int_t lda, const float* b, const fortran_int_t ldb,
+ const float beta, float* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSYMM( &side, &blas_option< UpLo >::value, &m, &n, &alpha, a, &lda,
             b, &ldb, &beta, c, &ldc );
@@ -194,9 +199,10 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, fortran_int_t m, fortran_int_t n,
- double alpha, const double* a, fortran_int_t lda, const double* b,
- fortran_int_t ldb, double beta, double* c, fortran_int_t ldc ) {
+inline void symm( Order, const char side, UpLo, const fortran_int_t m,
+ const fortran_int_t n, const double alpha, const double* a,
+ const fortran_int_t lda, const double* b, const fortran_int_t ldb,
+ const double beta, double* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSYMM( &side, &blas_option< UpLo >::value, &m, &n, &alpha, a, &lda,
             b, &ldb, &beta, c, &ldc );
@@ -208,10 +214,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, fortran_int_t m, fortran_int_t n,
- std::complex<float> alpha, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float> beta, std::complex<float>* c, fortran_int_t ldc ) {
+inline void symm( Order, const char side, UpLo, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<float> alpha,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CSYMM( &side, &blas_option< UpLo >::value, &m, &n, &alpha, a, &lda,
             b, &ldb, &beta, c, &ldc );
@@ -223,11 +231,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline void symm( Order, char side, UpLo, fortran_int_t m, fortran_int_t n,
- std::complex<double> alpha, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double> beta, std::complex<double>* c,
- fortran_int_t ldc ) {
+inline void symm( Order, const char side, UpLo, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<double> alpha,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZSYMM( &side, &blas_option< UpLo >::value, &m, &n, &alpha, a, &lda,
             b, &ldb, &beta, c, &ldc );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syr2k.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syr2k.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syr2k.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -64,9 +64,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, int n, int k, float alpha,
- const float* a, int lda, const float* b, int ldb, float beta,
- float* c, int ldc ) {
+inline void syr2k( Order, UpLo, Trans, const int n, const int k,
+ const float alpha, const float* a, const int lda, const float* b,
+ const int ldb, const float beta, float* c, const int ldc ) {
     cblas_ssyr2k( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, alpha, a, lda, b, ldb, beta,
             c, ldc );
@@ -78,9 +78,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, int n, int k, double alpha,
- const double* a, int lda, const double* b, int ldb, double beta,
- double* c, int ldc ) {
+inline void syr2k( Order, UpLo, Trans, const int n, const int k,
+ const double alpha, const double* a, const int lda, const double* b,
+ const int ldb, const double beta, double* c, const int ldc ) {
     cblas_dsyr2k( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, alpha, a, lda, b, ldb, beta,
             c, ldc );
@@ -92,10 +92,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, int n, int k,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void syr2k( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* b, const int ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     cblas_csyr2k( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, &alpha, a, lda, b, ldb, &beta,
             c, ldc );
@@ -107,10 +108,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, int n, int k,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, std::complex<double> beta,
- std::complex<double>* c, int ldc ) {
+inline void syr2k( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* b, const int ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const int ldc ) {
     cblas_zsyr2k( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, &alpha, a, lda, b, ldb, &beta,
             c, ldc );
@@ -123,9 +125,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, int n, int k, float alpha,
- const float* a, int lda, const float* b, int ldb, float beta,
- float* c, int ldc ) {
+inline void syr2k( Order, UpLo, Trans, const int n, const int k,
+ const float alpha, const float* a, const int lda, const float* b,
+ const int ldb, const float beta, float* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSsyr2k( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, b, ldb, beta, c, ldc );
@@ -137,9 +139,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, int n, int k, double alpha,
- const double* a, int lda, const double* b, int ldb, double beta,
- double* c, int ldc ) {
+inline void syr2k( Order, UpLo, Trans, const int n, const int k,
+ const double alpha, const double* a, const int lda, const double* b,
+ const int ldb, const double beta, double* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDsyr2k( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, b, ldb, beta, c, ldc );
@@ -151,10 +153,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, int n, int k,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- const std::complex<float>* b, int ldb, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void syr2k( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float>* b, const int ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCsyr2k( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, b, ldb, beta, c, ldc );
@@ -166,10 +169,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, int n, int k,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- const std::complex<double>* b, int ldb, std::complex<double> beta,
- std::complex<double>* c, int ldc ) {
+inline void syr2k( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double>* b, const int ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -181,9 +185,10 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- float alpha, const float* a, fortran_int_t lda, const float* b,
- fortran_int_t ldb, float beta, float* c, fortran_int_t ldc ) {
+inline void syr2k( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const float alpha, const float* a,
+ const fortran_int_t lda, const float* b, const fortran_int_t ldb,
+ const float beta, float* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSYR2K( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );
@@ -195,9 +200,10 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- double alpha, const double* a, fortran_int_t lda, const double* b,
- fortran_int_t ldb, double beta, double* c, fortran_int_t ldc ) {
+inline void syr2k( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const double alpha, const double* a,
+ const fortran_int_t lda, const double* b, const fortran_int_t ldb,
+ const double beta, double* c, const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSYR2K( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );
@@ -209,10 +215,12 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- std::complex<float> alpha, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float> beta, std::complex<float>* c, fortran_int_t ldc ) {
+inline void syr2k( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<float> alpha,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ const std::complex<float> beta, std::complex<float>* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CSYR2K( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );
@@ -224,11 +232,12 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syr2k( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- std::complex<double> alpha, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double> beta, std::complex<double>* c,
- fortran_int_t ldc ) {
+inline void syr2k( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<double> alpha,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ const std::complex<double> beta, std::complex<double>* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZSYR2K( &blas_option< UpLo >::value, &blas_option< Trans >::value,
             &n, &k, &alpha, a, &lda, b, &ldb, &beta, c, &ldc );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syrk.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syrk.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/syrk.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -64,8 +64,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, int n, int k, float alpha,
- const float* a, int lda, float beta, float* c, int ldc ) {
+inline void syrk( Order, UpLo, Trans, const int n, const int k,
+ const float alpha, const float* a, const int lda, const float beta,
+ float* c, const int ldc ) {
     cblas_ssyrk( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, alpha, a, lda, beta, c, ldc );
 }
@@ -76,8 +77,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, int n, int k, double alpha,
- const double* a, int lda, double beta, double* c, int ldc ) {
+inline void syrk( Order, UpLo, Trans, const int n, const int k,
+ const double alpha, const double* a, const int lda, const double beta,
+ double* c, const int ldc ) {
     cblas_dsyrk( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, alpha, a, lda, beta, c, ldc );
 }
@@ -88,9 +90,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, int n, int k, std::complex<float> alpha,
- const std::complex<float>* a, int lda, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void syrk( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     cblas_csyrk( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, &alpha, a, lda, &beta, c,
             ldc );
@@ -102,9 +105,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, int n, int k,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- std::complex<double> beta, std::complex<double>* c, int ldc ) {
+inline void syrk( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double> beta,
+ std::complex<double>* c, const int ldc ) {
     cblas_zsyrk( cblas_option< Order >::value, cblas_option< UpLo >::value,
             cblas_option< Trans >::value, n, k, &alpha, a, lda, &beta, c,
             ldc );
@@ -117,8 +121,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, int n, int k, float alpha,
- const float* a, int lda, float beta, float* c, int ldc ) {
+inline void syrk( Order, UpLo, Trans, const int n, const int k,
+ const float alpha, const float* a, const int lda, const float beta,
+ float* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasSsyrk( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, beta, c, ldc );
@@ -130,8 +135,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, int n, int k, double alpha,
- const double* a, int lda, double beta, double* c, int ldc ) {
+inline void syrk( Order, UpLo, Trans, const int n, const int k,
+ const double alpha, const double* a, const int lda, const double beta,
+ double* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDsyrk( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, beta, c, ldc );
@@ -143,9 +149,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, int n, int k, std::complex<float> alpha,
- const std::complex<float>* a, int lda, std::complex<float> beta,
- std::complex<float>* c, int ldc ) {
+inline void syrk( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const int lda, const std::complex<float> beta, std::complex<float>* c,
+ const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCsyrk( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, beta, c, ldc );
@@ -157,9 +164,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, int n, int k,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- std::complex<double> beta, std::complex<double>* c, int ldc ) {
+inline void syrk( Order, UpLo, Trans, const int n, const int k,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const int lda, const std::complex<double> beta,
+ std::complex<double>* c, const int ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasZsyrk( blas_option< UpLo >::value, blas_option< Trans >::value, n,
             k, alpha, a, lda, beta, c, ldc );
@@ -172,9 +180,10 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- float alpha, const float* a, fortran_int_t lda, float beta, float* c,
- fortran_int_t ldc ) {
+inline void syrk( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const float alpha, const float* a,
+ const fortran_int_t lda, const float beta, float* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_SSYRK( &blas_option< UpLo >::value, &blas_option< Trans >::value, &n,
             &k, &alpha, a, &lda, &beta, c, &ldc );
@@ -186,9 +195,10 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- double alpha, const double* a, fortran_int_t lda, double beta,
- double* c, fortran_int_t ldc ) {
+inline void syrk( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const double alpha, const double* a,
+ const fortran_int_t lda, const double beta, double* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DSYRK( &blas_option< UpLo >::value, &blas_option< Trans >::value, &n,
             &k, &alpha, a, &lda, &beta, c, &ldc );
@@ -200,10 +210,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- std::complex<float> alpha, const std::complex<float>* a,
- fortran_int_t lda, std::complex<float> beta, std::complex<float>* c,
- fortran_int_t ldc ) {
+inline void syrk( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<float> alpha,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float> beta, std::complex<float>* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CSYRK( &blas_option< UpLo >::value, &blas_option< Trans >::value, &n,
             &k, &alpha, a, &lda, &beta, c, &ldc );
@@ -215,10 +226,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Trans >
-inline void syrk( Order, UpLo, Trans, fortran_int_t n, fortran_int_t k,
- std::complex<double> alpha, const std::complex<double>* a,
- fortran_int_t lda, std::complex<double> beta, std::complex<double>* c,
- fortran_int_t ldc ) {
+inline void syrk( Order, UpLo, Trans, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<double> alpha,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double> beta, std::complex<double>* c,
+ const fortran_int_t ldc ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZSYRK( &blas_option< UpLo >::value, &blas_option< Trans >::value, &n,
             &k, &alpha, a, &lda, &beta, c, &ldc );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trmm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trmm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trmm.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -65,8 +65,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, int m, int n,
- float alpha, const float* a, int lda, float* b, int ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const float alpha, const float* a, const int lda,
+ float* b, const int ldb ) {
     cblas_strmm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, cblas_option< TransA >::value,
             cblas_option< Diag >::value, m, n, alpha, a, lda, b, ldb );
@@ -78,8 +79,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, int m, int n,
- double alpha, const double* a, int lda, double* b, int ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const double alpha, const double* a, const int lda,
+ double* b, const int ldb ) {
     cblas_dtrmm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, cblas_option< TransA >::value,
             cblas_option< Diag >::value, m, n, alpha, a, lda, b, ldb );
@@ -91,9 +93,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, int m, int n,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- std::complex<float>* b, int ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda, std::complex<float>* b,
+ const int ldb ) {
     cblas_ctrmm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, cblas_option< TransA >::value,
             cblas_option< Diag >::value, m, n, &alpha, a, lda, b, ldb );
@@ -105,9 +108,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, int m, int n,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- std::complex<double>* b, int ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda, std::complex<double>* b,
+ const int ldb ) {
     cblas_ztrmm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, cblas_option< TransA >::value,
             cblas_option< Diag >::value, m, n, &alpha, a, lda, b, ldb );
@@ -120,8 +124,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, int m, int n,
- float alpha, const float* a, int lda, float* b, int ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const float alpha, const float* a, const int lda,
+ float* b, const int ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasStrmm( side, blas_option< UpLo >::value, blas_option<
             TransA >::value, blas_option< Diag >::value, m, n, alpha, a, lda,
@@ -134,8 +139,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, int m, int n,
- double alpha, const double* a, int lda, double* b, int ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const double alpha, const double* a, const int lda,
+ double* b, const int ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDtrmm( side, blas_option< UpLo >::value, blas_option<
             TransA >::value, blas_option< Diag >::value, m, n, alpha, a, lda,
@@ -148,9 +154,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, int m, int n,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- std::complex<float>* b, int ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda, std::complex<float>* b,
+ const int ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCtrmm( side, blas_option< UpLo >::value, blas_option<
             TransA >::value, blas_option< Diag >::value, m, n, alpha, a, lda,
@@ -163,9 +170,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, int m, int n,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- std::complex<double>* b, int ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda, std::complex<double>* b,
+ const int ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     // NOT FOUND();
 }
@@ -177,9 +185,10 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, fortran_int_t m,
- fortran_int_t n, float alpha, const float* a, fortran_int_t lda,
- float* b, fortran_int_t ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag,
+ const fortran_int_t m, const fortran_int_t n, const float alpha,
+ const float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_STRMM( &side, &blas_option< UpLo >::value, &blas_option<
             TransA >::value, &blas_option< Diag >::value, &m, &n, &alpha, a,
@@ -192,9 +201,10 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, fortran_int_t m,
- fortran_int_t n, double alpha, const double* a, fortran_int_t lda,
- double* b, fortran_int_t ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag,
+ const fortran_int_t m, const fortran_int_t n, const double alpha,
+ const double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DTRMM( &side, &blas_option< UpLo >::value, &blas_option<
             TransA >::value, &blas_option< Diag >::value, &m, &n, &alpha, a,
@@ -207,10 +217,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, fortran_int_t m,
- fortran_int_t n, std::complex<float> alpha,
- const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CTRMM( &side, &blas_option< UpLo >::value, &blas_option<
             TransA >::value, &blas_option< Diag >::value, &m, &n, &alpha, a,
@@ -223,10 +234,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trmm( Order, char side, UpLo, TransA, Diag, fortran_int_t m,
- fortran_int_t n, std::complex<double> alpha,
- const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline void trmm( Order, const char side, UpLo, TransA, Diag,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZTRMM( &side, &blas_option< UpLo >::value, &blas_option<
             TransA >::value, &blas_option< Diag >::value, &m, &n, &alpha, a,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trsm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trsm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/blas/level3/trsm.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -65,8 +65,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, int m, int n,
- float alpha, const float* a, int lda, float* b, int ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const float alpha, const float* a, const int lda,
+ float* b, const int ldb ) {
     cblas_strsm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, cblas_option< TransA >::value,
             cblas_option< Diag >::value, m, n, alpha, a, lda, b, ldb );
@@ -78,8 +79,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, int m, int n,
- double alpha, const double* a, int lda, double* b, int ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const double alpha, const double* a, const int lda,
+ double* b, const int ldb ) {
     cblas_dtrsm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, cblas_option< TransA >::value,
             cblas_option< Diag >::value, m, n, alpha, a, lda, b, ldb );
@@ -91,9 +93,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, int m, int n,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- std::complex<float>* b, int ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda, std::complex<float>* b,
+ const int ldb ) {
     cblas_ctrsm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, cblas_option< TransA >::value,
             cblas_option< Diag >::value, m, n, &alpha, a, lda, b, ldb );
@@ -105,9 +108,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, int m, int n,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- std::complex<double>* b, int ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda, std::complex<double>* b,
+ const int ldb ) {
     cblas_ztrsm( cblas_option< Order >::value, cblas_option< Side >::value,
             cblas_option< UpLo >::value, cblas_option< TransA >::value,
             cblas_option< Diag >::value, m, n, &alpha, a, lda, b, ldb );
@@ -120,8 +124,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, int m, int n,
- float alpha, const float* a, int lda, float* b, int ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const float alpha, const float* a, const int lda,
+ float* b, const int ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasStrsm( side, blas_option< UpLo >::value, blas_option<
             TransA >::value, blas_option< Diag >::value, m, n, alpha, a, lda,
@@ -134,8 +139,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, int m, int n,
- double alpha, const double* a, int lda, double* b, int ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const double alpha, const double* a, const int lda,
+ double* b, const int ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasDtrsm( side, blas_option< UpLo >::value, blas_option<
             TransA >::value, blas_option< Diag >::value, m, n, alpha, a, lda,
@@ -148,9 +154,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, int m, int n,
- std::complex<float> alpha, const std::complex<float>* a, int lda,
- std::complex<float>* b, int ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const std::complex<float> alpha,
+ const std::complex<float>* a, const int lda, std::complex<float>* b,
+ const int ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasCtrsm( side, blas_option< UpLo >::value, blas_option<
             TransA >::value, blas_option< Diag >::value, m, n, alpha, a, lda,
@@ -163,9 +170,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, int m, int n,
- std::complex<double> alpha, const std::complex<double>* a, int lda,
- std::complex<double>* b, int ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag, const int m,
+ const int n, const std::complex<double> alpha,
+ const std::complex<double>* a, const int lda, std::complex<double>* b,
+ const int ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     cublasZtrsm( side, blas_option< UpLo >::value, blas_option<
             TransA >::value, blas_option< Diag >::value, m, n, alpha, a, lda,
@@ -179,9 +187,10 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, fortran_int_t m,
- fortran_int_t n, float alpha, const float* a, fortran_int_t lda,
- float* b, fortran_int_t ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag,
+ const fortran_int_t m, const fortran_int_t n, const float alpha,
+ const float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_STRSM( &side, &blas_option< UpLo >::value, &blas_option<
             TransA >::value, &blas_option< Diag >::value, &m, &n, &alpha, a,
@@ -194,9 +203,10 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, fortran_int_t m,
- fortran_int_t n, double alpha, const double* a, fortran_int_t lda,
- double* b, fortran_int_t ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag,
+ const fortran_int_t m, const fortran_int_t n, const double alpha,
+ const double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_DTRSM( &side, &blas_option< UpLo >::value, &blas_option<
             TransA >::value, &blas_option< Diag >::value, &m, &n, &alpha, a,
@@ -209,10 +219,11 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, fortran_int_t m,
- fortran_int_t n, std::complex<float> alpha,
- const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float> alpha, const std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_CTRSM( &side, &blas_option< UpLo >::value, &blas_option<
             TransA >::value, &blas_option< Diag >::value, &m, &n, &alpha, a,
@@ -225,10 +236,11 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename TransA, typename Diag >
-inline void trsm( Order, char side, UpLo, TransA, Diag, fortran_int_t m,
- fortran_int_t n, std::complex<double> alpha,
- const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline void trsm( Order, const char side, UpLo, TransA, Diag,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double> alpha, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     BLAS_ZTRSM( &side, &blas_option< UpLo >::value, &blas_option<
             TransA >::value, &blas_option< Diag >::value, &m, &n, &alpha, a,

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,38 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_HPP
+
+#include <boost/numeric/bindings/lapack/auxiliary/larf.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/larfb.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/larfg.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/larft.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/larfx.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/largv.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/larnv.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/larrb.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/larre.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/langb.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lange.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lanhb.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lanhe.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lanhp.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lanhs.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lansb.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lansp.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lansy.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lantb.hpp>
+#include <boost/numeric/bindings/lapack/auxiliary/lantr.hpp>
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/langb.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/langb.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,209 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANGB_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANGB_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for langb is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t langb( const char norm, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, const float* ab,
+ const fortran_int_t ldab, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLANGB( &norm, &n, &kl, &ku, ab, &ldab, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t langb( const char norm, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, const double* ab,
+ const fortran_int_t ldab, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLANGB( &norm, &n, &kl, &ku, ab, &ldab, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t langb( const char norm, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const std::complex<float>* ab, const fortran_int_t ldab,
+ float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANGB( &norm, &n, &kl, &ku, ab, &ldab, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t langb( const char norm, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const std::complex<double>* ab, const fortran_int_t ldab,
+ double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANGB( &norm, &n, &kl, &ku, ab, &ldab, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to langb.
+//
+template< typename Value >
+struct langb_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixAB, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, detail::workspace1< WORK > work ) {
+ BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
+ BOOST_ASSERT( bandwidth_upper(ab) >= 0 );
+ BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
+ BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+
+ bandwidth_upper(ab)+1 );
+ return detail::langb( norm, n, bandwidth_lower(ab),
+ bandwidth_upper(ab), begin_value(ab), stride_major(ab),
+ begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixAB >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, n, ab, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixAB >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, optimal_workspace work ) {
+ return invoke( norm, n, ab, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the langb_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for langb. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixAB, typename Workspace >
+inline std::ptrdiff_t langb( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, Workspace work ) {
+ return langb_impl< typename value< MatrixAB >::type >::invoke( norm,
+ n, ab, work );
+}
+
+//
+// Overloaded function for langb. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixAB >
+inline std::ptrdiff_t langb( const char norm, const fortran_int_t n,
+ const MatrixAB& ab ) {
+ return langb_impl< typename value< MatrixAB >::type >::invoke( norm,
+ n, ab, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lange.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lange.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,205 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANGE_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANGE_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lange is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t lange( const char norm, const fortran_int_t m,
+ const fortran_int_t n, const float* a, const fortran_int_t lda,
+ float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLANGE( &norm, &m, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t lange( const char norm, const fortran_int_t m,
+ const fortran_int_t n, const double* a, const fortran_int_t lda,
+ double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLANGE( &norm, &m, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t lange( const char norm, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<float>* a,
+ const fortran_int_t lda, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANGE( &norm, &m, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t lange( const char norm, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<double>* a,
+ const fortran_int_t lda, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANGE( &norm, &m, &n, a, &lda, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lange.
+//
+template< typename Value >
+struct lange_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixA, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ detail::workspace1< WORK > work ) {
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
+ BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
+ BOOST_ASSERT( size_row(a) >= 0 );
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(size_row(a),
+ 1) );
+ return detail::lange( norm, size_row(a), size_column(a),
+ begin_value(a), stride_major(a),
+ begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, a, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ optimal_workspace work ) {
+ return invoke( norm, a, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lange_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lange. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixA, typename Workspace >
+inline std::ptrdiff_t lange( const char norm, const MatrixA& a,
+ Workspace work ) {
+ return lange_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, work );
+}
+
+//
+// Overloaded function for lange. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixA >
+inline std::ptrdiff_t lange( const char norm, const MatrixA& a ) {
+ return lange_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhb.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhb.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,184 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANHB_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANHB_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/data_side.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lanhb is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lanhb( const char norm, UpLo, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<float>* ab,
+ const fortran_int_t ldab, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANHB( &norm, &lapack_option< UpLo >::value, &n, &k, ab, &ldab,
+ work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lanhb( const char norm, UpLo, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<double>* ab,
+ const fortran_int_t ldab, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANHB( &norm, &lapack_option< UpLo >::value, &n, &k, ab, &ldab,
+ work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lanhb.
+//
+template< typename Value >
+struct lanhb_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixAB, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, detail::workspace1< WORK > work ) {
+ BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
+ BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
+ BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+1 );
+ return detail::lanhb( norm, uplo(), n, bandwidth_lower(ab),
+ begin_value(ab), stride_major(ab),
+ begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixAB >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, n, ab, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixAB >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, optimal_workspace work ) {
+ return invoke( norm, n, ab, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lanhb_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lanhb. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixAB, typename Workspace >
+inline std::ptrdiff_t lanhb( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, Workspace work ) {
+ return lanhb_impl< typename value< MatrixAB >::type >::invoke( norm,
+ n, ab, work );
+}
+
+//
+// Overloaded function for lanhb. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixAB >
+inline std::ptrdiff_t lanhb( const char norm, const fortran_int_t n,
+ const MatrixAB& ab ) {
+ return lanhb_impl< typename value< MatrixAB >::type >::invoke( norm,
+ n, ab, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhe.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhe.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,182 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANHE_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANHE_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/data_side.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lanhe is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lanhe( const char norm, UpLo, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANHE( &norm, &lapack_option< UpLo >::value, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lanhe( const char norm, UpLo, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANHE( &norm, &lapack_option< UpLo >::value, &n, a, &lda, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lanhe.
+//
+template< typename Value >
+struct lanhe_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixA, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ detail::workspace1< WORK > work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
+ BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
+ BOOST_ASSERT( stride_major(a) >= std::max<
+ std::ptrdiff_t >(size_column(a),1) );
+ return detail::lanhe( norm, uplo(), size_column(a), begin_value(a),
+ stride_major(a), begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ minimal_workspace work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, a, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ optimal_workspace work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ return invoke( norm, a, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lanhe_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lanhe. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixA, typename Workspace >
+inline std::ptrdiff_t lanhe( const char norm, const MatrixA& a,
+ Workspace work ) {
+ return lanhe_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, work );
+}
+
+//
+// Overloaded function for lanhe. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixA >
+inline std::ptrdiff_t lanhe( const char norm, const MatrixA& a ) {
+ return lanhe_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhp.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhp.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,176 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANHP_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANHP_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/data_side.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lanhp is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lanhp( const char norm, UpLo, const fortran_int_t n,
+ const std::complex<float>* ap, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANHP( &norm, &lapack_option< UpLo >::value, &n, ap, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lanhp( const char norm, UpLo, const fortran_int_t n,
+ const std::complex<double>* ap, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANHP( &norm, &lapack_option< UpLo >::value, &n, ap, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lanhp.
+//
+template< typename Value >
+struct lanhp_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixAP, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAP& ap, detail::workspace1< WORK > work ) {
+ BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ return detail::lanhp( norm, uplo(), n, begin_value(ap),
+ begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixAP >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAP& ap, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, n, ap, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixAP >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAP& ap, optimal_workspace work ) {
+ return invoke( norm, n, ap, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lanhp_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lanhp. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixAP, typename Workspace >
+inline std::ptrdiff_t lanhp( const char norm, const fortran_int_t n,
+ const MatrixAP& ap, Workspace work ) {
+ return lanhp_impl< typename value< MatrixAP >::type >::invoke( norm,
+ n, ap, work );
+}
+
+//
+// Overloaded function for lanhp. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixAP >
+inline std::ptrdiff_t lanhp( const char norm, const fortran_int_t n,
+ const MatrixAP& ap ) {
+ return lanhp_impl< typename value< MatrixAP >::type >::invoke( norm,
+ n, ap, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhs.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lanhs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,200 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANHS_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANHS_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lanhs is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t lanhs( const char norm, const fortran_int_t n,
+ const float* a, const fortran_int_t lda, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLANHS( &norm, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t lanhs( const char norm, const fortran_int_t n,
+ const double* a, const fortran_int_t lda, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLANHS( &norm, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t lanhs( const char norm, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANHS( &norm, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t lanhs( const char norm, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANHS( &norm, &n, a, &lda, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lanhs.
+//
+template< typename Value >
+struct lanhs_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixA, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ detail::workspace1< WORK > work ) {
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
+ BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
+ BOOST_ASSERT( stride_major(a) >= std::max<
+ std::ptrdiff_t >(size_column(a),1) );
+ return detail::lanhs( norm, size_column(a), begin_value(a),
+ stride_major(a), begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, a, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ optimal_workspace work ) {
+ return invoke( norm, a, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lanhs_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lanhs. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixA, typename Workspace >
+inline std::ptrdiff_t lanhs( const char norm, const MatrixA& a,
+ Workspace work ) {
+ return lanhs_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, work );
+}
+
+//
+// Overloaded function for lanhs. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixA >
+inline std::ptrdiff_t lanhs( const char norm, const MatrixA& a ) {
+ return lanhs_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansb.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansb.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,214 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANSB_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANSB_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/data_side.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lansb is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansb( const char norm, UpLo, const fortran_int_t n,
+ const fortran_int_t k, const float* ab, const fortran_int_t ldab,
+ float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLANSB( &norm, &lapack_option< UpLo >::value, &n, &k, ab, &ldab,
+ work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansb( const char norm, UpLo, const fortran_int_t n,
+ const fortran_int_t k, const double* ab, const fortran_int_t ldab,
+ double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLANSB( &norm, &lapack_option< UpLo >::value, &n, &k, ab, &ldab,
+ work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansb( const char norm, UpLo, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<float>* ab,
+ const fortran_int_t ldab, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANSB( &norm, &lapack_option< UpLo >::value, &n, &k, ab, &ldab,
+ work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansb( const char norm, UpLo, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<double>* ab,
+ const fortran_int_t ldab, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANSB( &norm, &lapack_option< UpLo >::value, &n, &k, ab, &ldab,
+ work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lansb.
+//
+template< typename Value >
+struct lansb_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixAB, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, detail::workspace1< WORK > work ) {
+ BOOST_ASSERT( bandwidth_lower(ab) >= 0 );
+ BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
+ BOOST_ASSERT( stride_major(ab) >= bandwidth_lower(ab)+1 );
+ return detail::lansb( norm, uplo(), n, bandwidth_lower(ab),
+ begin_value(ab), stride_major(ab),
+ begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixAB >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, n, ab, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixAB >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, optimal_workspace work ) {
+ return invoke( norm, n, ab, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lansb_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lansb. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixAB, typename Workspace >
+inline std::ptrdiff_t lansb( const char norm, const fortran_int_t n,
+ const MatrixAB& ab, Workspace work ) {
+ return lansb_impl< typename value< MatrixAB >::type >::invoke( norm,
+ n, ab, work );
+}
+
+//
+// Overloaded function for lansb. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixAB >
+inline std::ptrdiff_t lansb( const char norm, const fortran_int_t n,
+ const MatrixAB& ab ) {
+ return lansb_impl< typename value< MatrixAB >::type >::invoke( norm,
+ n, ab, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansp.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansp.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,202 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANSP_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANSP_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/data_side.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lansp is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansp( const char norm, UpLo, const fortran_int_t n,
+ const float* ap, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLANSP( &norm, &lapack_option< UpLo >::value, &n, ap, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansp( const char norm, UpLo, const fortran_int_t n,
+ const double* ap, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLANSP( &norm, &lapack_option< UpLo >::value, &n, ap, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansp( const char norm, UpLo, const fortran_int_t n,
+ const std::complex<float>* ap, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANSP( &norm, &lapack_option< UpLo >::value, &n, ap, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansp( const char norm, UpLo, const fortran_int_t n,
+ const std::complex<double>* ap, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANSP( &norm, &lapack_option< UpLo >::value, &n, ap, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lansp.
+//
+template< typename Value >
+struct lansp_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixAP, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAP& ap, detail::workspace1< WORK > work ) {
+ BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ return detail::lansp( norm, uplo(), n, begin_value(ap),
+ begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixAP >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAP& ap, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, n, ap, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixAP >
+ static std::ptrdiff_t invoke( const char norm, const fortran_int_t n,
+ const MatrixAP& ap, optimal_workspace work ) {
+ return invoke( norm, n, ap, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lansp_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lansp. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixAP, typename Workspace >
+inline std::ptrdiff_t lansp( const char norm, const fortran_int_t n,
+ const MatrixAP& ap, Workspace work ) {
+ return lansp_impl< typename value< MatrixAP >::type >::invoke( norm,
+ n, ap, work );
+}
+
+//
+// Overloaded function for lansp. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixAP >
+inline std::ptrdiff_t lansp( const char norm, const fortran_int_t n,
+ const MatrixAP& ap ) {
+ return lansp_impl< typename value< MatrixAP >::type >::invoke( norm,
+ n, ap, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansy.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lansy.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,208 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANSY_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANSY_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/data_side.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lansy is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansy( const char norm, UpLo, const fortran_int_t n,
+ const float* a, const fortran_int_t lda, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLANSY( &norm, &lapack_option< UpLo >::value, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansy( const char norm, UpLo, const fortran_int_t n,
+ const double* a, const fortran_int_t lda, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLANSY( &norm, &lapack_option< UpLo >::value, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansy( const char norm, UpLo, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANSY( &norm, &lapack_option< UpLo >::value, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename UpLo >
+inline std::ptrdiff_t lansy( const char norm, UpLo, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANSY( &norm, &lapack_option< UpLo >::value, &n, a, &lda, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lansy.
+//
+template< typename Value >
+struct lansy_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixA, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ detail::workspace1< WORK > work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
+ BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
+ BOOST_ASSERT( stride_major(a) >= std::max<
+ std::ptrdiff_t >(size_column(a),1) );
+ return detail::lansy( norm, uplo(), size_column(a), begin_value(a),
+ stride_major(a), begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ minimal_workspace work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, a, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ optimal_workspace work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ return invoke( norm, a, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lansy_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lansy. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixA, typename Workspace >
+inline std::ptrdiff_t lansy( const char norm, const MatrixA& a,
+ Workspace work ) {
+ return lansy_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, work );
+}
+
+//
+// Overloaded function for lansy. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixA >
+inline std::ptrdiff_t lansy( const char norm, const MatrixA& a ) {
+ return lansy_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantb.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantb.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,224 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANTB_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANTB_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/data_side.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/diag_tag.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lantb is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+template< typename Diag >
+inline std::ptrdiff_t lantb( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const fortran_int_t k, const float* ab,
+ const fortran_int_t ldab, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLANTB( &norm, &uplo, &lapack_option< Diag >::value, &n, &k, ab,
+ &ldab, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+template< typename Diag >
+inline std::ptrdiff_t lantb( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const fortran_int_t k, const double* ab,
+ const fortran_int_t ldab, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLANTB( &norm, &uplo, &lapack_option< Diag >::value, &n, &k, ab,
+ &ldab, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename Diag >
+inline std::ptrdiff_t lantb( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<float>* ab, const fortran_int_t ldab,
+ float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANTB( &norm, &uplo, &lapack_option< Diag >::value, &n, &k, ab,
+ &ldab, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename Diag >
+inline std::ptrdiff_t lantb( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<double>* ab, const fortran_int_t ldab,
+ double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANTB( &norm, &uplo, &lapack_option< Diag >::value, &n, &k, ab,
+ &ldab, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lantb.
+//
+template< typename Value >
+struct lantb_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixAB, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const char uplo,
+ const fortran_int_t n, const fortran_int_t k,
+ const MatrixAB& ab, detail::workspace1< WORK > work ) {
+ typedef typename result_of::diag_tag< MatrixAB >::type diag;
+ BOOST_ASSERT( k >= 0 );
+ BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_minor(ab) == 1 || stride_minor(ab) == 1 );
+ BOOST_ASSERT( stride_major(ab) >= k+1 );
+ return detail::lantb( norm, uplo, diag(), n, k, begin_value(ab),
+ stride_major(ab), begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixAB >
+ static std::ptrdiff_t invoke( const char norm, const char uplo,
+ const fortran_int_t n, const fortran_int_t k,
+ const MatrixAB& ab, minimal_workspace work ) {
+ typedef typename result_of::diag_tag< MatrixAB >::type diag;
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, uplo, n, k, ab, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixAB >
+ static std::ptrdiff_t invoke( const char norm, const char uplo,
+ const fortran_int_t n, const fortran_int_t k,
+ const MatrixAB& ab, optimal_workspace work ) {
+ typedef typename result_of::diag_tag< MatrixAB >::type diag;
+ return invoke( norm, uplo, n, k, ab, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lantb_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lantb. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixAB, typename Workspace >
+inline std::ptrdiff_t lantb( const char norm, const char uplo,
+ const fortran_int_t n, const fortran_int_t k,
+ const MatrixAB& ab, Workspace work ) {
+ return lantb_impl< typename value< MatrixAB >::type >::invoke( norm,
+ uplo, n, k, ab, work );
+}
+
+//
+// Overloaded function for lantb. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixAB >
+inline std::ptrdiff_t lantb( const char norm, const char uplo,
+ const fortran_int_t n, const fortran_int_t k,
+ const MatrixAB& ab ) {
+ return lantb_impl< typename value< MatrixAB >::type >::invoke( norm,
+ uplo, n, k, ab, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantr.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/lantr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,222 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANTR_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LANTR_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/data_side.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/diag_tag.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for lantr is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+template< typename UpLo, typename Diag >
+inline std::ptrdiff_t lantr( const char norm, UpLo, Diag,
+ const fortran_int_t m, const fortran_int_t n, const float* a,
+ const fortran_int_t lda, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLANTR( &norm, &lapack_option< UpLo >::value, &lapack_option<
+ Diag >::value, &m, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+template< typename UpLo, typename Diag >
+inline std::ptrdiff_t lantr( const char norm, UpLo, Diag,
+ const fortran_int_t m, const fortran_int_t n, const double* a,
+ const fortran_int_t lda, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLANTR( &norm, &lapack_option< UpLo >::value, &lapack_option<
+ Diag >::value, &m, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename UpLo, typename Diag >
+inline std::ptrdiff_t lantr( const char norm, UpLo, Diag,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLANTR( &norm, &lapack_option< UpLo >::value, &lapack_option<
+ Diag >::value, &m, &n, a, &lda, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename UpLo, typename Diag >
+inline std::ptrdiff_t lantr( const char norm, UpLo, Diag,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ double* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLANTR( &norm, &lapack_option< UpLo >::value, &lapack_option<
+ Diag >::value, &m, &n, a, &lda, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to lantr.
+//
+template< typename Value >
+struct lantr_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixA, typename WORK >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ detail::workspace1< WORK > work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ typedef typename result_of::diag_tag< MatrixA >::type diag;
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= 0 );
+ BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
+ BOOST_ASSERT( size_row(a) >= 0 );
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(size_row(a),
+ 1) );
+ return detail::lantr( norm, uplo(), diag(), size_row(a),
+ size_column(a), begin_value(a), stride_major(a),
+ begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ minimal_workspace work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ typedef typename result_of::diag_tag< MatrixA >::type diag;
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( norm, a, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char norm, const MatrixA& a,
+ optimal_workspace work ) {
+ typedef typename result_of::data_side< MatrixA >::type uplo;
+ typedef typename result_of::diag_tag< MatrixA >::type diag;
+ return invoke( norm, a, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the lantr_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for lantr. Its overload differs for
+// * User-defined workspace
+//
+template< typename MatrixA, typename Workspace >
+inline std::ptrdiff_t lantr( const char norm, const MatrixA& a,
+ Workspace work ) {
+ return lantr_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, work );
+}
+
+//
+// Overloaded function for lantr. Its overload differs for
+// * Default workspace-type (optimal)
+//
+template< typename MatrixA >
+inline std::ptrdiff_t lantr( const char norm, const MatrixA& a ) {
+ return lantr_impl< typename value< MatrixA >::type >::invoke( norm,
+ a, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larf.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,377 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARF_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARF_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_complex.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/is_real.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/utility/enable_if.hpp>
+
+//
+// The LAPACK-backend for larf is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t larf( const char side, const fortran_int_t m,
+ const fortran_int_t n, const float* v, const fortran_int_t incv,
+ const float tau, float* c, const fortran_int_t ldc, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLARF( &side, &m, &n, v, &incv, &tau, c, &ldc, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t larf( const char side, const fortran_int_t m,
+ const fortran_int_t n, const double* v, const fortran_int_t incv,
+ const double tau, double* c, const fortran_int_t ldc, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLARF( &side, &m, &n, v, &incv, &tau, c, &ldc, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t larf( const char side, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<float>* v,
+ const fortran_int_t incv, const std::complex<float> tau,
+ std::complex<float>* c, const fortran_int_t ldc,
+ std::complex<float>* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLARF( &side, &m, &n, v, &incv, &tau, c, &ldc, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t larf( const char side, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<double>* v,
+ const fortran_int_t incv, const std::complex<double> tau,
+ std::complex<double>* c, const fortran_int_t ldc,
+ std::complex<double>* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLARF( &side, &m, &n, v, &incv, &tau, c, &ldc, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to larf.
+//
+template< typename Value, typename Enable = void >
+struct larf_impl {};
+
+//
+// This implementation is enabled if Value is a real type.
+//
+template< typename Value >
+struct larf_impl< Value, typename boost::enable_if< is_real< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorV, typename MatrixC, typename WORK >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const real_type tau, MatrixC& c, detail::workspace1<
+ WORK > work ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorV >::type >::type,
+ typename remove_const< typename value<
+ MatrixC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixC >::value) );
+ BOOST_ASSERT( side == 'L' || side == 'R' );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( side,
+ size_column(c), size_row(c) ));
+ BOOST_ASSERT( size_minor(c) == 1 || stride_minor(c) == 1 );
+ BOOST_ASSERT( stride_major(c) >= std::max< std::ptrdiff_t >(1,
+ size_row(c)) );
+ return detail::larf( side, size_row(c), size_column(c),
+ begin_value(v), stride(v), tau, begin_value(c),
+ stride_major(c), begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename VectorV, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const real_type tau, MatrixC& c, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work( side,
+ size_column(c), size_row(c) ) );
+ return invoke( side, v, tau, c, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename VectorV, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const real_type tau, MatrixC& c, optimal_workspace work ) {
+ return invoke( side, v, tau, c, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( const char side,
+ const std::ptrdiff_t n, const std::ptrdiff_t m ) {
+ return ( side == 'L' ? n : m );
+ }
+};
+
+//
+// This implementation is enabled if Value is a complex type.
+//
+template< typename Value >
+struct larf_impl< Value, typename boost::enable_if< is_complex< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorV, typename MatrixC, typename WORK >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const value_type tau, MatrixC& c, detail::workspace1<
+ WORK > work ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorV >::type >::type,
+ typename remove_const< typename value<
+ MatrixC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixC >::value) );
+ BOOST_ASSERT( side == 'L' || side == 'R' );
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work( side,
+ size_column(c), size_row(c) ));
+ BOOST_ASSERT( size_minor(c) == 1 || stride_minor(c) == 1 );
+ BOOST_ASSERT( stride_major(c) >= std::max< std::ptrdiff_t >(1,
+ size_row(c)) );
+ return detail::larf( side, size_row(c), size_column(c),
+ begin_value(v), stride(v), tau, begin_value(c),
+ stride_major(c), begin_value(work.select(value_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename VectorV, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const value_type tau, MatrixC& c, minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work( side,
+ size_column(c), size_row(c) ) );
+ return invoke( side, v, tau, c, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename VectorV, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const value_type tau, MatrixC& c, optimal_workspace work ) {
+ return invoke( side, v, tau, c, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( const char side,
+ const std::ptrdiff_t n, const std::ptrdiff_t m ) {
+ return ( side == 'L' ? n : m );
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the larf_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for larf. Its overload differs for
+// * MatrixC&
+// * User-defined workspace
+//
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline std::ptrdiff_t larf( const char side, const VectorV& v,
+ const typename remove_imaginary< typename value<
+ VectorV >::type >::type tau, MatrixC& c, Workspace work ) {
+ return larf_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, work );
+}
+
+//
+// Overloaded function for larf. Its overload differs for
+// * MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename VectorV, typename MatrixC >
+inline std::ptrdiff_t larf( const char side, const VectorV& v,
+ const typename remove_imaginary< typename value<
+ VectorV >::type >::type tau, MatrixC& c ) {
+ return larf_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, optimal_workspace() );
+}
+
+//
+// Overloaded function for larf. Its overload differs for
+// * const MatrixC&
+// * User-defined workspace
+//
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline std::ptrdiff_t larf( const char side, const VectorV& v,
+ const typename remove_imaginary< typename value<
+ VectorV >::type >::type tau, const MatrixC& c, Workspace work ) {
+ return larf_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, work );
+}
+
+//
+// Overloaded function for larf. Its overload differs for
+// * const MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename VectorV, typename MatrixC >
+inline std::ptrdiff_t larf( const char side, const VectorV& v,
+ const typename remove_imaginary< typename value<
+ VectorV >::type >::type tau, const MatrixC& c ) {
+ return larf_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, optimal_workspace() );
+}
+//
+// Overloaded function for larf. Its overload differs for
+// * MatrixC&
+// * User-defined workspace
+//
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline std::ptrdiff_t larf( const char side, const VectorV& v,
+ const typename value< VectorV >::type tau, MatrixC& c,
+ Workspace work ) {
+ return larf_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, work );
+}
+
+//
+// Overloaded function for larf. Its overload differs for
+// * MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename VectorV, typename MatrixC >
+inline std::ptrdiff_t larf( const char side, const VectorV& v,
+ const typename value< VectorV >::type tau, MatrixC& c ) {
+ return larf_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, optimal_workspace() );
+}
+
+//
+// Overloaded function for larf. Its overload differs for
+// * const MatrixC&
+// * User-defined workspace
+//
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline std::ptrdiff_t larf( const char side, const VectorV& v,
+ const typename value< VectorV >::type tau, const MatrixC& c,
+ Workspace work ) {
+ return larf_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, work );
+}
+
+//
+// Overloaded function for larf. Its overload differs for
+// * const MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename VectorV, typename MatrixC >
+inline std::ptrdiff_t larf( const char side, const VectorV& v,
+ const typename value< VectorV >::type tau, const MatrixC& c ) {
+ return larf_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfb.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfb.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,372 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARFB_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARFB_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_complex.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/is_real.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/trans_tag.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/utility/enable_if.hpp>
+
+//
+// The LAPACK-backend for larfb is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+template< typename Trans >
+inline std::ptrdiff_t larfb( const char side, Trans, const char direct,
+ const char storev, const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, const float* v, const fortran_int_t ldv,
+ const float* t, const fortran_int_t ldt, float* c,
+ const fortran_int_t ldc, float* work, const fortran_int_t ldwork ) {
+ fortran_int_t info(0);
+ LAPACK_SLARFB( &side, &lapack_option< Trans >::value, &direct, &storev,
+ &m, &n, &k, v, &ldv, t, &ldt, c, &ldc, work, &ldwork );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+template< typename Trans >
+inline std::ptrdiff_t larfb( const char side, Trans, const char direct,
+ const char storev, const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, const double* v, const fortran_int_t ldv,
+ const double* t, const fortran_int_t ldt, double* c,
+ const fortran_int_t ldc, double* work, const fortran_int_t ldwork ) {
+ fortran_int_t info(0);
+ LAPACK_DLARFB( &side, &lapack_option< Trans >::value, &direct, &storev,
+ &m, &n, &k, v, &ldv, t, &ldt, c, &ldc, work, &ldwork );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+template< typename Trans >
+inline std::ptrdiff_t larfb( const char side, Trans, const char direct,
+ const char storev, const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<float>* v,
+ const fortran_int_t ldv, const std::complex<float>* t,
+ const fortran_int_t ldt, std::complex<float>* c,
+ const fortran_int_t ldc, std::complex<float>* work,
+ const fortran_int_t ldwork ) {
+ fortran_int_t info(0);
+ LAPACK_CLARFB( &side, &lapack_option< Trans >::value, &direct, &storev,
+ &m, &n, &k, v, &ldv, t, &ldt, c, &ldc, work, &ldwork );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+template< typename Trans >
+inline std::ptrdiff_t larfb( const char side, Trans, const char direct,
+ const char storev, const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, const std::complex<double>* v,
+ const fortran_int_t ldv, const std::complex<double>* t,
+ const fortran_int_t ldt, std::complex<double>* c,
+ const fortran_int_t ldc, std::complex<double>* work,
+ const fortran_int_t ldwork ) {
+ fortran_int_t info(0);
+ LAPACK_ZLARFB( &side, &lapack_option< Trans >::value, &direct, &storev,
+ &m, &n, &k, v, &ldv, t, &ldt, c, &ldc, work, &ldwork );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to larfb.
+//
+template< typename Value, typename Enable = void >
+struct larfb_impl {};
+
+//
+// This implementation is enabled if Value is a real type.
+//
+template< typename Value >
+struct larfb_impl< Value, typename boost::enable_if< is_real< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixV, typename MatrixT, typename MatrixC,
+ typename WORK >
+ static std::ptrdiff_t invoke( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t, MatrixC& c,
+ detail::workspace1< WORK > work ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< MatrixV >::type >::type,
+ typename remove_const< typename value<
+ MatrixT >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< MatrixV >::type >::type,
+ typename remove_const< typename value<
+ MatrixC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixC >::value) );
+ BOOST_ASSERT( direct == 'F' || direct == 'B' );
+ BOOST_ASSERT( side == 'L' || side == 'R' );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_minor(c) == 1 || stride_minor(c) == 1 );
+ BOOST_ASSERT( size_minor(t) == 1 || stride_minor(t) == 1 );
+ BOOST_ASSERT( size_minor(v) == 1 || stride_minor(v) == 1 );
+ BOOST_ASSERT( storev == 'C' || storev == 'R' );
+ BOOST_ASSERT( stride_major(c) >= std::max< std::ptrdiff_t >(1,
+ size_row(c)) );
+ BOOST_ASSERT( stride_major(t) >= size_column(t) );
+ return detail::larfb( side, trans(), direct, storev, size_row(c),
+ size_column(c), size_column(t), begin_value(v),
+ stride_major(v), begin_value(t), stride_major(t),
+ begin_value(c), stride_major(c), begin_value(work),
+ stride_major(work) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixV, typename MatrixT, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t, MatrixC& c,
+ minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( side, direct, storev, v, t, c, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixV, typename MatrixT, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t, MatrixC& c,
+ optimal_workspace work ) {
+ return invoke( side, direct, storev, v, t, c, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+//
+// This implementation is enabled if Value is a complex type.
+//
+template< typename Value >
+struct larfb_impl< Value, typename boost::enable_if< is_complex< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixV, typename MatrixT, typename MatrixC,
+ typename WORK >
+ static std::ptrdiff_t invoke( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t, MatrixC& c,
+ detail::workspace1< WORK > work ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< MatrixV >::type >::type,
+ typename remove_const< typename value<
+ MatrixT >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< MatrixV >::type >::type,
+ typename remove_const< typename value<
+ MatrixC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixC >::value) );
+ BOOST_ASSERT( direct == 'F' || direct == 'B' );
+ BOOST_ASSERT( side == 'L' || side == 'R' );
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_minor(c) == 1 || stride_minor(c) == 1 );
+ BOOST_ASSERT( size_minor(t) == 1 || stride_minor(t) == 1 );
+ BOOST_ASSERT( size_minor(v) == 1 || stride_minor(v) == 1 );
+ BOOST_ASSERT( storev == 'C' || storev == 'R' );
+ BOOST_ASSERT( stride_major(c) >= std::max< std::ptrdiff_t >(1,
+ size_row(c)) );
+ BOOST_ASSERT( stride_major(t) >= size_column(t) );
+ return detail::larfb( side, trans(), direct, storev, size_row(c),
+ size_column(c), size_column(t), begin_value(v),
+ stride_major(v), begin_value(t), stride_major(t),
+ begin_value(c), stride_major(c), begin_value(work),
+ stride_major(work) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixV, typename MatrixT, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t, MatrixC& c,
+ minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( side, direct, storev, v, t, c, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixV, typename MatrixT, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t, MatrixC& c,
+ optimal_workspace work ) {
+ return invoke( side, direct, storev, v, t, c, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the larfb_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for larfb. Its overload differs for
+// * MatrixC&
+// * User-defined workspace
+//
+template< typename MatrixV, typename MatrixT, typename MatrixC,
+ typename Workspace >
+inline std::ptrdiff_t larfb( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t, MatrixC& c,
+ Workspace work ) {
+ return larfb_impl< typename value< MatrixV >::type >::invoke( side,
+ direct, storev, v, t, c, work );
+}
+
+//
+// Overloaded function for larfb. Its overload differs for
+// * MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename MatrixV, typename MatrixT, typename MatrixC >
+inline std::ptrdiff_t larfb( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t, MatrixC& c ) {
+ return larfb_impl< typename value< MatrixV >::type >::invoke( side,
+ direct, storev, v, t, c, optimal_workspace() );
+}
+
+//
+// Overloaded function for larfb. Its overload differs for
+// * const MatrixC&
+// * User-defined workspace
+//
+template< typename MatrixV, typename MatrixT, typename MatrixC,
+ typename Workspace >
+inline std::ptrdiff_t larfb( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t,
+ const MatrixC& c, Workspace work ) {
+ return larfb_impl< typename value< MatrixV >::type >::invoke( side,
+ direct, storev, v, t, c, work );
+}
+
+//
+// Overloaded function for larfb. Its overload differs for
+// * const MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename MatrixV, typename MatrixT, typename MatrixC >
+inline std::ptrdiff_t larfb( const char side, const char direct,
+ const char storev, const MatrixV& v, const MatrixT& t,
+ const MatrixC& c ) {
+ return larfb_impl< typename value< MatrixV >::type >::invoke( side,
+ direct, storev, v, t, c, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfg.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfg.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,220 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARFG_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARFG_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/is_complex.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/is_real.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/utility/enable_if.hpp>
+
+//
+// The LAPACK-backend for larfg is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t larfg( const fortran_int_t n, float& alpha, float* x,
+ const fortran_int_t incx, float& tau ) {
+ fortran_int_t info(0);
+ LAPACK_SLARFG( &n, &alpha, x, &incx, &tau );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t larfg( const fortran_int_t n, double& alpha, double* x,
+ const fortran_int_t incx, double& tau ) {
+ fortran_int_t info(0);
+ LAPACK_DLARFG( &n, &alpha, x, &incx, &tau );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t larfg( const fortran_int_t n, std::complex<float>& alpha,
+ std::complex<float>* x, const fortran_int_t incx,
+ std::complex<float>& tau ) {
+ fortran_int_t info(0);
+ LAPACK_CLARFG( &n, &alpha, x, &incx, &tau );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t larfg( const fortran_int_t n,
+ std::complex<double>& alpha, std::complex<double>* x,
+ const fortran_int_t incx, std::complex<double>& tau ) {
+ fortran_int_t info(0);
+ LAPACK_ZLARFG( &n, &alpha, x, &incx, &tau );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to larfg.
+//
+template< typename Value, typename Enable = void >
+struct larfg_impl {};
+
+//
+// This implementation is enabled if Value is a real type.
+//
+template< typename Value >
+struct larfg_impl< Value, typename boost::enable_if< is_real< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorX >
+ static std::ptrdiff_t invoke( const fortran_int_t n, real_type& alpha,
+ VectorX& x, real_type& tau ) {
+ BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
+ return detail::larfg( n, alpha, begin_value(x), stride(x), tau );
+ }
+
+};
+
+//
+// This implementation is enabled if Value is a complex type.
+//
+template< typename Value >
+struct larfg_impl< Value, typename boost::enable_if< is_complex< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorX >
+ static std::ptrdiff_t invoke( const fortran_int_t n, value_type& alpha,
+ VectorX& x, value_type& tau ) {
+ BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
+ return detail::larfg( n, alpha, begin_value(x), stride(x), tau );
+ }
+
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the larfg_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for larfg. Its overload differs for
+// * VectorX&
+//
+template< typename VectorX >
+inline std::ptrdiff_t larfg( const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorX >::type >::type& alpha, VectorX& x, typename remove_imaginary<
+ typename value< VectorX >::type >::type& tau ) {
+ return larfg_impl< typename value< VectorX >::type >::invoke( n,
+ alpha, x, tau );
+}
+
+//
+// Overloaded function for larfg. Its overload differs for
+// * const VectorX&
+//
+template< typename VectorX >
+inline std::ptrdiff_t larfg( const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorX >::type >::type& alpha, const VectorX& x,
+ typename remove_imaginary< typename value<
+ VectorX >::type >::type& tau ) {
+ return larfg_impl< typename value< VectorX >::type >::invoke( n,
+ alpha, x, tau );
+}
+//
+// Overloaded function for larfg. Its overload differs for
+// * VectorX&
+//
+template< typename VectorX >
+inline std::ptrdiff_t larfg( const fortran_int_t n, typename value<
+ VectorX >::type& alpha, VectorX& x, typename value<
+ VectorX >::type& tau ) {
+ return larfg_impl< typename value< VectorX >::type >::invoke( n,
+ alpha, x, tau );
+}
+
+//
+// Overloaded function for larfg. Its overload differs for
+// * const VectorX&
+//
+template< typename VectorX >
+inline std::ptrdiff_t larfg( const fortran_int_t n, typename value<
+ VectorX >::type& alpha, const VectorX& x, typename value<
+ VectorX >::type& tau ) {
+ return larfg_impl< typename value< VectorX >::type >::invoke( n,
+ alpha, x, tau );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larft.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larft.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,215 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARFT_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARFT_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for larft is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t larft( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k, float* v,
+ const fortran_int_t ldv, const float* tau, float* t,
+ const fortran_int_t ldt ) {
+ fortran_int_t info(0);
+ LAPACK_SLARFT( &direct, &storev, &n, &k, v, &ldv, tau, t, &ldt );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t larft( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k, double* v,
+ const fortran_int_t ldv, const double* tau, double* t,
+ const fortran_int_t ldt ) {
+ fortran_int_t info(0);
+ LAPACK_DLARFT( &direct, &storev, &n, &k, v, &ldv, tau, t, &ldt );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t larft( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k, std::complex<float>* v,
+ const fortran_int_t ldv, const std::complex<float>* tau,
+ std::complex<float>* t, const fortran_int_t ldt ) {
+ fortran_int_t info(0);
+ LAPACK_CLARFT( &direct, &storev, &n, &k, v, &ldv, tau, t, &ldt );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t larft( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k, std::complex<double>* v,
+ const fortran_int_t ldv, const std::complex<double>* tau,
+ std::complex<double>* t, const fortran_int_t ldt ) {
+ fortran_int_t info(0);
+ LAPACK_ZLARFT( &direct, &storev, &n, &k, v, &ldv, tau, t, &ldt );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to larft.
+//
+template< typename Value >
+struct larft_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixV, typename VectorTAU, typename MatrixT >
+ static std::ptrdiff_t invoke( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k, MatrixV& v,
+ const VectorTAU& tau, MatrixT& t ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< MatrixV >::type >::type,
+ typename remove_const< typename value<
+ VectorTAU >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< MatrixV >::type >::type,
+ typename remove_const< typename value<
+ MatrixT >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixV >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixT >::value) );
+ BOOST_ASSERT( direct == 'F' || direct == 'B' );
+ BOOST_ASSERT( k >= 1 );
+ BOOST_ASSERT( n >= 0 );
+ BOOST_ASSERT( size(tau) >= k );
+ BOOST_ASSERT( size_minor(t) == 1 || stride_minor(t) == 1 );
+ BOOST_ASSERT( size_minor(v) == 1 || stride_minor(v) == 1 );
+ BOOST_ASSERT( storev == 'C' || storev == 'R' );
+ BOOST_ASSERT( stride_major(t) >= k );
+ return detail::larft( direct, storev, n, k, begin_value(v),
+ stride_major(v), begin_value(tau), begin_value(t),
+ stride_major(t) );
+ }
+
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the larft_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for larft. Its overload differs for
+// * MatrixV&
+// * MatrixT&
+//
+template< typename MatrixV, typename VectorTAU, typename MatrixT >
+inline std::ptrdiff_t larft( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k, MatrixV& v,
+ const VectorTAU& tau, MatrixT& t ) {
+ return larft_impl< typename value< MatrixV >::type >::invoke( direct,
+ storev, n, k, v, tau, t );
+}
+
+//
+// Overloaded function for larft. Its overload differs for
+// * const MatrixV&
+// * MatrixT&
+//
+template< typename MatrixV, typename VectorTAU, typename MatrixT >
+inline std::ptrdiff_t larft( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k,
+ const MatrixV& v, const VectorTAU& tau, MatrixT& t ) {
+ return larft_impl< typename value< MatrixV >::type >::invoke( direct,
+ storev, n, k, v, tau, t );
+}
+
+//
+// Overloaded function for larft. Its overload differs for
+// * MatrixV&
+// * const MatrixT&
+//
+template< typename MatrixV, typename VectorTAU, typename MatrixT >
+inline std::ptrdiff_t larft( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k, MatrixV& v,
+ const VectorTAU& tau, const MatrixT& t ) {
+ return larft_impl< typename value< MatrixV >::type >::invoke( direct,
+ storev, n, k, v, tau, t );
+}
+
+//
+// Overloaded function for larft. Its overload differs for
+// * const MatrixV&
+// * const MatrixT&
+//
+template< typename MatrixV, typename VectorTAU, typename MatrixT >
+inline std::ptrdiff_t larft( const char direct, const char storev,
+ const fortran_int_t n, const fortran_int_t k,
+ const MatrixV& v, const VectorTAU& tau, const MatrixT& t ) {
+ return larft_impl< typename value< MatrixV >::type >::invoke( direct,
+ storev, n, k, v, tau, t );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfx.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larfx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,372 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARFX_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARFX_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_complex.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/is_real.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/utility/enable_if.hpp>
+
+//
+// The LAPACK-backend for larfx is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t larfx( const char side, const fortran_int_t m,
+ const fortran_int_t n, const float* v, const float tau, float* c,
+ const fortran_int_t ldc, float* work ) {
+ fortran_int_t info(0);
+ LAPACK_SLARFX( &side, &m, &n, v, &tau, c, &ldc, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t larfx( const char side, const fortran_int_t m,
+ const fortran_int_t n, const double* v, const double tau, double* c,
+ const fortran_int_t ldc, double* work ) {
+ fortran_int_t info(0);
+ LAPACK_DLARFX( &side, &m, &n, v, &tau, c, &ldc, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t larfx( const char side, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<float>* v,
+ const std::complex<float> tau, std::complex<float>* c,
+ const fortran_int_t ldc, std::complex<float>* work ) {
+ fortran_int_t info(0);
+ LAPACK_CLARFX( &side, &m, &n, v, &tau, c, &ldc, work );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t larfx( const char side, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<double>* v,
+ const std::complex<double> tau, std::complex<double>* c,
+ const fortran_int_t ldc, std::complex<double>* work ) {
+ fortran_int_t info(0);
+ LAPACK_ZLARFX( &side, &m, &n, v, &tau, c, &ldc, work );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to larfx.
+//
+template< typename Value, typename Enable = void >
+struct larfx_impl {};
+
+//
+// This implementation is enabled if Value is a real type.
+//
+template< typename Value >
+struct larfx_impl< Value, typename boost::enable_if< is_real< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorV, typename MatrixC, typename WORK >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const real_type tau, MatrixC& c, detail::workspace1<
+ WORK > work ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorV >::type >::type,
+ typename remove_const< typename value<
+ MatrixC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixC >::value) );
+ BOOST_ASSERT( side == 'L' || side == 'R' );
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_minor(c) == 1 || stride_minor(c) == 1 );
+ BOOST_ASSERT( stride_major(c) >= (ERROR) );
+ return detail::larfx( side, size_row(c), size_column(c),
+ begin_value(v), tau, begin_value(c), stride_major(c),
+ begin_value(work.select(real_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename VectorV, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const real_type tau, MatrixC& c, minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( side, v, tau, c, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename VectorV, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const real_type tau, MatrixC& c, optimal_workspace work ) {
+ return invoke( side, v, tau, c, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+//
+// This implementation is enabled if Value is a complex type.
+//
+template< typename Value >
+struct larfx_impl< Value, typename boost::enable_if< is_complex< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorV, typename MatrixC, typename WORK >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const value_type tau, MatrixC& c, detail::workspace1<
+ WORK > work ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorV >::type >::type,
+ typename remove_const< typename value<
+ MatrixC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixC >::value) );
+ BOOST_ASSERT( side == 'L' || side == 'R' );
+ BOOST_ASSERT( size(work.select(value_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_minor(c) == 1 || stride_minor(c) == 1 );
+ BOOST_ASSERT( stride_major(c) >= std::max< std::ptrdiff_t >(1,
+ size_row(c)) );
+ return detail::larfx( side, size_row(c), size_column(c),
+ begin_value(v), tau, begin_value(c), stride_major(c),
+ begin_value(work.select(value_type())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename VectorV, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const value_type tau, MatrixC& c, minimal_workspace work ) {
+ bindings::detail::array< value_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ return invoke( side, v, tau, c, workspace( tmp_work ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename VectorV, typename MatrixC >
+ static std::ptrdiff_t invoke( const char side, const VectorV& v,
+ const value_type tau, MatrixC& c, optimal_workspace work ) {
+ return invoke( side, v, tau, c, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the larfx_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for larfx. Its overload differs for
+// * MatrixC&
+// * User-defined workspace
+//
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline std::ptrdiff_t larfx( const char side, const VectorV& v,
+ const typename remove_imaginary< typename value<
+ VectorV >::type >::type tau, MatrixC& c, Workspace work ) {
+ return larfx_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, work );
+}
+
+//
+// Overloaded function for larfx. Its overload differs for
+// * MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename VectorV, typename MatrixC >
+inline std::ptrdiff_t larfx( const char side, const VectorV& v,
+ const typename remove_imaginary< typename value<
+ VectorV >::type >::type tau, MatrixC& c ) {
+ return larfx_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, optimal_workspace() );
+}
+
+//
+// Overloaded function for larfx. Its overload differs for
+// * const MatrixC&
+// * User-defined workspace
+//
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline std::ptrdiff_t larfx( const char side, const VectorV& v,
+ const typename remove_imaginary< typename value<
+ VectorV >::type >::type tau, const MatrixC& c, Workspace work ) {
+ return larfx_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, work );
+}
+
+//
+// Overloaded function for larfx. Its overload differs for
+// * const MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename VectorV, typename MatrixC >
+inline std::ptrdiff_t larfx( const char side, const VectorV& v,
+ const typename remove_imaginary< typename value<
+ VectorV >::type >::type tau, const MatrixC& c ) {
+ return larfx_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, optimal_workspace() );
+}
+//
+// Overloaded function for larfx. Its overload differs for
+// * MatrixC&
+// * User-defined workspace
+//
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline std::ptrdiff_t larfx( const char side, const VectorV& v,
+ const typename value< VectorV >::type tau, MatrixC& c,
+ Workspace work ) {
+ return larfx_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, work );
+}
+
+//
+// Overloaded function for larfx. Its overload differs for
+// * MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename VectorV, typename MatrixC >
+inline std::ptrdiff_t larfx( const char side, const VectorV& v,
+ const typename value< VectorV >::type tau, MatrixC& c ) {
+ return larfx_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, optimal_workspace() );
+}
+
+//
+// Overloaded function for larfx. Its overload differs for
+// * const MatrixC&
+// * User-defined workspace
+//
+template< typename VectorV, typename MatrixC, typename Workspace >
+inline std::ptrdiff_t larfx( const char side, const VectorV& v,
+ const typename value< VectorV >::type tau, const MatrixC& c,
+ Workspace work ) {
+ return larfx_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, work );
+}
+
+//
+// Overloaded function for larfx. Its overload differs for
+// * const MatrixC&
+// * Default workspace-type (optimal)
+//
+template< typename VectorV, typename MatrixC >
+inline std::ptrdiff_t larfx( const char side, const VectorV& v,
+ const typename value< VectorV >::type tau, const MatrixC& c ) {
+ return larfx_impl< typename value< VectorV >::type >::invoke( side,
+ v, tau, c, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/largv.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/largv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,300 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARGV_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARGV_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/is_complex.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/is_real.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/utility/enable_if.hpp>
+
+//
+// The LAPACK-backend for largv is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t largv( const fortran_int_t n, float* x,
+ const fortran_int_t incx, float* y, const fortran_int_t incy,
+ float* c, const fortran_int_t incc ) {
+ fortran_int_t info(0);
+ LAPACK_SLARGV( &n, x, &incx, y, &incy, c, &incc );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t largv( const fortran_int_t n, double* x,
+ const fortran_int_t incx, double* y, const fortran_int_t incy,
+ double* c, const fortran_int_t incc ) {
+ fortran_int_t info(0);
+ LAPACK_DLARGV( &n, x, &incx, y, &incy, c, &incc );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t largv( const fortran_int_t n, std::complex<float>* x,
+ const fortran_int_t incx, std::complex<float>* y,
+ const fortran_int_t incy, float* c, const fortran_int_t incc ) {
+ fortran_int_t info(0);
+ LAPACK_CLARGV( &n, x, &incx, y, &incy, c, &incc );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t largv( const fortran_int_t n, std::complex<double>* x,
+ const fortran_int_t incx, std::complex<double>* y,
+ const fortran_int_t incy, double* c, const fortran_int_t incc ) {
+ fortran_int_t info(0);
+ LAPACK_ZLARGV( &n, x, &incx, y, &incy, c, &incc );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to largv.
+//
+template< typename Value, typename Enable = void >
+struct largv_impl {};
+
+//
+// This implementation is enabled if Value is a real type.
+//
+template< typename Value >
+struct largv_impl< Value, typename boost::enable_if< is_real< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorX, typename VectorY, typename VectorC >
+ static std::ptrdiff_t invoke( const fortran_int_t n, VectorX& x,
+ VectorY& y, VectorC& c ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorX >::type >::type,
+ typename remove_const< typename value<
+ VectorY >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorX >::type >::type,
+ typename remove_const< typename value<
+ VectorC >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorY >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorC >::value) );
+ BOOST_ASSERT( size(c) >= 1+(n-1)*stride(c) );
+ BOOST_ASSERT( size(x) >= 1+(n-1)*stride(x) );
+ BOOST_ASSERT( size(y) >= 1+(n-1)*stride(y) );
+ return detail::largv( n, begin_value(x), stride(x), begin_value(y),
+ stride(y), begin_value(c), stride(c) );
+ }
+
+};
+
+//
+// This implementation is enabled if Value is a complex type.
+//
+template< typename Value >
+struct largv_impl< Value, typename boost::enable_if< is_complex< Value > >::type > {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorX, typename VectorY, typename VectorC >
+ static std::ptrdiff_t invoke( const fortran_int_t n, VectorX& x,
+ VectorY& y, VectorC& c ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorX >::type >::type,
+ typename remove_const< typename value<
+ VectorY >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorY >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorC >::value) );
+ BOOST_ASSERT( size(c) >= 1+(n-1)*stride(c) );
+ BOOST_ASSERT( size(x) >= 1+(n-1)*stride(x) );
+ BOOST_ASSERT( size(y) >= 1+(n-1)*stride(y) );
+ return detail::largv( n, begin_value(x), stride(x), begin_value(y),
+ stride(y), begin_value(c), stride(c) );
+ }
+
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the largv_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for largv. Its overload differs for
+// * VectorX&
+// * VectorY&
+// * VectorC&
+//
+template< typename VectorX, typename VectorY, typename VectorC >
+inline std::ptrdiff_t largv( const fortran_int_t n, VectorX& x,
+ VectorY& y, VectorC& c ) {
+ return largv_impl< typename value< VectorX >::type >::invoke( n, x,
+ y, c );
+}
+
+//
+// Overloaded function for largv. Its overload differs for
+// * const VectorX&
+// * VectorY&
+// * VectorC&
+//
+template< typename VectorX, typename VectorY, typename VectorC >
+inline std::ptrdiff_t largv( const fortran_int_t n, const VectorX& x,
+ VectorY& y, VectorC& c ) {
+ return largv_impl< typename value< VectorX >::type >::invoke( n, x,
+ y, c );
+}
+
+//
+// Overloaded function for largv. Its overload differs for
+// * VectorX&
+// * const VectorY&
+// * VectorC&
+//
+template< typename VectorX, typename VectorY, typename VectorC >
+inline std::ptrdiff_t largv( const fortran_int_t n, VectorX& x,
+ const VectorY& y, VectorC& c ) {
+ return largv_impl< typename value< VectorX >::type >::invoke( n, x,
+ y, c );
+}
+
+//
+// Overloaded function for largv. Its overload differs for
+// * const VectorX&
+// * const VectorY&
+// * VectorC&
+//
+template< typename VectorX, typename VectorY, typename VectorC >
+inline std::ptrdiff_t largv( const fortran_int_t n, const VectorX& x,
+ const VectorY& y, VectorC& c ) {
+ return largv_impl< typename value< VectorX >::type >::invoke( n, x,
+ y, c );
+}
+
+//
+// Overloaded function for largv. Its overload differs for
+// * VectorX&
+// * VectorY&
+// * const VectorC&
+//
+template< typename VectorX, typename VectorY, typename VectorC >
+inline std::ptrdiff_t largv( const fortran_int_t n, VectorX& x,
+ VectorY& y, const VectorC& c ) {
+ return largv_impl< typename value< VectorX >::type >::invoke( n, x,
+ y, c );
+}
+
+//
+// Overloaded function for largv. Its overload differs for
+// * const VectorX&
+// * VectorY&
+// * const VectorC&
+//
+template< typename VectorX, typename VectorY, typename VectorC >
+inline std::ptrdiff_t largv( const fortran_int_t n, const VectorX& x,
+ VectorY& y, const VectorC& c ) {
+ return largv_impl< typename value< VectorX >::type >::invoke( n, x,
+ y, c );
+}
+
+//
+// Overloaded function for largv. Its overload differs for
+// * VectorX&
+// * const VectorY&
+// * const VectorC&
+//
+template< typename VectorX, typename VectorY, typename VectorC >
+inline std::ptrdiff_t largv( const fortran_int_t n, VectorX& x,
+ const VectorY& y, const VectorC& c ) {
+ return largv_impl< typename value< VectorX >::type >::invoke( n, x,
+ y, c );
+}
+
+//
+// Overloaded function for largv. Its overload differs for
+// * const VectorX&
+// * const VectorY&
+// * const VectorC&
+//
+template< typename VectorX, typename VectorY, typename VectorC >
+inline std::ptrdiff_t largv( const fortran_int_t n, const VectorX& x,
+ const VectorY& y, const VectorC& c ) {
+ return largv_impl< typename value< VectorX >::type >::invoke( n, x,
+ y, c );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larnv.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larnv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,187 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARNV_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARNV_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for larnv is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t larnv( const fortran_int_t idist, fortran_int_t* iseed,
+ const fortran_int_t n, float* x ) {
+ fortran_int_t info(0);
+ LAPACK_SLARNV( &idist, iseed, &n, x );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t larnv( const fortran_int_t idist, fortran_int_t* iseed,
+ const fortran_int_t n, double* x ) {
+ fortran_int_t info(0);
+ LAPACK_DLARNV( &idist, iseed, &n, x );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<float> value-type.
+//
+inline std::ptrdiff_t larnv( const fortran_int_t idist, fortran_int_t* iseed,
+ const fortran_int_t n, std::complex<float>* x ) {
+ fortran_int_t info(0);
+ LAPACK_CLARNV( &idist, iseed, &n, x );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * complex<double> value-type.
+//
+inline std::ptrdiff_t larnv( const fortran_int_t idist, fortran_int_t* iseed,
+ const fortran_int_t n, std::complex<double>* x ) {
+ fortran_int_t info(0);
+ LAPACK_ZLARNV( &idist, iseed, &n, x );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to larnv.
+//
+template< typename Value >
+struct larnv_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorISEED, typename VectorX >
+ static std::ptrdiff_t invoke( const fortran_int_t idist,
+ VectorISEED& iseed, const fortran_int_t n, VectorX& x ) {
+ BOOST_STATIC_ASSERT( (is_mutable< VectorISEED >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
+ BOOST_ASSERT( size(iseed) >= 4 );
+ BOOST_ASSERT( size(x) >= n );
+ return detail::larnv( idist, begin_value(iseed), n, begin_value(x) );
+ }
+
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the larnv_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for larnv. Its overload differs for
+// * VectorISEED&
+// * VectorX&
+//
+template< typename VectorISEED, typename VectorX >
+inline std::ptrdiff_t larnv( const fortran_int_t idist,
+ VectorISEED& iseed, const fortran_int_t n, VectorX& x ) {
+ return larnv_impl< typename value< VectorX >::type >::invoke( idist,
+ iseed, n, x );
+}
+
+//
+// Overloaded function for larnv. Its overload differs for
+// * const VectorISEED&
+// * VectorX&
+//
+template< typename VectorISEED, typename VectorX >
+inline std::ptrdiff_t larnv( const fortran_int_t idist,
+ const VectorISEED& iseed, const fortran_int_t n, VectorX& x ) {
+ return larnv_impl< typename value< VectorX >::type >::invoke( idist,
+ iseed, n, x );
+}
+
+//
+// Overloaded function for larnv. Its overload differs for
+// * VectorISEED&
+// * const VectorX&
+//
+template< typename VectorISEED, typename VectorX >
+inline std::ptrdiff_t larnv( const fortran_int_t idist,
+ VectorISEED& iseed, const fortran_int_t n, const VectorX& x ) {
+ return larnv_impl< typename value< VectorX >::type >::invoke( idist,
+ iseed, n, x );
+}
+
+//
+// Overloaded function for larnv. Its overload differs for
+// * const VectorISEED&
+// * const VectorX&
+//
+template< typename VectorISEED, typename VectorX >
+inline std::ptrdiff_t larnv( const fortran_int_t idist,
+ const VectorISEED& iseed, const fortran_int_t n,
+ const VectorX& x ) {
+ return larnv_impl< typename value< VectorX >::type >::invoke( idist,
+ iseed, n, x );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larrb.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larrb.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,619 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARRB_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARRB_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for larrb is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t larrb( const fortran_int_t n, const float* d,
+ const float* lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const float rtol1, const float rtol2,
+ const fortran_int_t offset, float* w, float* wgap, float* werr,
+ float* work, fortran_int_t* iwork, const float pivmin,
+ const float spdiam, const fortran_int_t twist ) {
+ fortran_int_t info(0);
+ LAPACK_SLARRB( &n, d, lld, &ifirst, &ilast, &rtol1, &rtol2, &offset, w,
+ wgap, werr, work, iwork, &pivmin, &spdiam, &twist, &info );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t larrb( const fortran_int_t n, const double* d,
+ const double* lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const double rtol1, const double rtol2,
+ const fortran_int_t offset, double* w, double* wgap, double* werr,
+ double* work, fortran_int_t* iwork, const double pivmin,
+ const double spdiam, const fortran_int_t twist ) {
+ fortran_int_t info(0);
+ LAPACK_DLARRB( &n, d, lld, &ifirst, &ilast, &rtol1, &rtol2, &offset, w,
+ wgap, werr, work, iwork, &pivmin, &spdiam, &twist, &info );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to larrb.
+//
+template< typename Value >
+struct larrb_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename WORK,
+ typename IWORK >
+ static std::ptrdiff_t invoke( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const real_type rtol1,
+ const real_type rtol2, const fortran_int_t offset, VectorW& w,
+ VectorWGAP& wgap, VectorWERR& werr, const real_type pivmin,
+ const real_type spdiam, const fortran_int_t twist,
+ detail::workspace2< WORK, IWORK > work ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorLLD >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorW >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorWGAP >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorWERR >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorW >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorWGAP >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorWERR >::value) );
+ BOOST_ASSERT( size(d) >= n );
+ BOOST_ASSERT( size(lld) >= n-1 );
+ BOOST_ASSERT( size(w) >= n );
+ BOOST_ASSERT( size(werr) >= n );
+ BOOST_ASSERT( size(work.select(fortran_int_t())) >=
+ min_size_iwork( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ return detail::larrb( n, begin_value(d), begin_value(lld), ifirst,
+ ilast, rtol1, rtol2, offset, begin_value(w),
+ begin_value(wgap), begin_value(werr),
+ begin_value(work.select(real_type())),
+ begin_value(work.select(fortran_int_t())), pivmin, spdiam,
+ twist );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+ static std::ptrdiff_t invoke( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const real_type rtol1,
+ const real_type rtol2, const fortran_int_t offset, VectorW& w,
+ VectorWGAP& wgap, VectorWERR& werr, const real_type pivmin,
+ const real_type spdiam, const fortran_int_t twist,
+ minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< fortran_int_t > tmp_iwork(
+ min_size_iwork( n ) );
+ return invoke( n, d, lld, ifirst, ilast, rtol1, rtol2, offset, w,
+ wgap, werr, pivmin, spdiam, twist, workspace( tmp_work,
+ tmp_iwork ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+ static std::ptrdiff_t invoke( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const real_type rtol1,
+ const real_type rtol2, const fortran_int_t offset, VectorW& w,
+ VectorWGAP& wgap, VectorWERR& werr, const real_type pivmin,
+ const real_type spdiam, const fortran_int_t twist,
+ optimal_workspace work ) {
+ return invoke( n, d, lld, ifirst, ilast, rtol1, rtol2, offset, w,
+ wgap, werr, pivmin, spdiam, twist, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( const std::ptrdiff_t n ) {
+ return 2*n;
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array iwork.
+ //
+ static std::ptrdiff_t min_size_iwork( const std::ptrdiff_t n ) {
+ return 2*n;
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the larrb_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * VectorW&
+// * VectorWGAP&
+// * VectorWERR&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename Workspace >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ VectorW& w, VectorWGAP& wgap, VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist, Workspace work ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, work );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * VectorW&
+// * VectorWGAP&
+// * VectorWERR&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ VectorW& w, VectorWGAP& wgap, VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, optimal_workspace() );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * const VectorW&
+// * VectorWGAP&
+// * VectorWERR&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename Workspace >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ const VectorW& w, VectorWGAP& wgap, VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist, Workspace work ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, work );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * const VectorW&
+// * VectorWGAP&
+// * VectorWERR&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ const VectorW& w, VectorWGAP& wgap, VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, optimal_workspace() );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * VectorW&
+// * const VectorWGAP&
+// * VectorWERR&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename Workspace >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ VectorW& w, const VectorWGAP& wgap, VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist, Workspace work ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, work );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * VectorW&
+// * const VectorWGAP&
+// * VectorWERR&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ VectorW& w, const VectorWGAP& wgap, VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, optimal_workspace() );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * const VectorW&
+// * const VectorWGAP&
+// * VectorWERR&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename Workspace >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ const VectorW& w, const VectorWGAP& wgap, VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist, Workspace work ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, work );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * const VectorW&
+// * const VectorWGAP&
+// * VectorWERR&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ const VectorW& w, const VectorWGAP& wgap, VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, optimal_workspace() );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * VectorW&
+// * VectorWGAP&
+// * const VectorWERR&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename Workspace >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ VectorW& w, VectorWGAP& wgap, const VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist, Workspace work ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, work );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * VectorW&
+// * VectorWGAP&
+// * const VectorWERR&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ VectorW& w, VectorWGAP& wgap, const VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, optimal_workspace() );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * const VectorW&
+// * VectorWGAP&
+// * const VectorWERR&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename Workspace >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ const VectorW& w, VectorWGAP& wgap, const VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist, Workspace work ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, work );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * const VectorW&
+// * VectorWGAP&
+// * const VectorWERR&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ const VectorW& w, VectorWGAP& wgap, const VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, optimal_workspace() );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * VectorW&
+// * const VectorWGAP&
+// * const VectorWERR&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename Workspace >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ VectorW& w, const VectorWGAP& wgap, const VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist, Workspace work ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, work );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * VectorW&
+// * const VectorWGAP&
+// * const VectorWERR&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ VectorW& w, const VectorWGAP& wgap, const VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, optimal_workspace() );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * const VectorW&
+// * const VectorWGAP&
+// * const VectorWERR&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR, typename Workspace >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ const VectorW& w, const VectorWGAP& wgap, const VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist, Workspace work ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, work );
+}
+
+//
+// Overloaded function for larrb. Its overload differs for
+// * const VectorW&
+// * const VectorWGAP&
+// * const VectorWERR&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorLLD, typename VectorW,
+ typename VectorWGAP, typename VectorWERR >
+inline std::ptrdiff_t larrb( const fortran_int_t n, const VectorD& d,
+ const VectorLLD& lld, const fortran_int_t ifirst,
+ const fortran_int_t ilast, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const fortran_int_t offset,
+ const VectorW& w, const VectorWGAP& wgap, const VectorWERR& werr,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type pivmin, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spdiam,
+ const fortran_int_t twist ) {
+ return larrb_impl< typename value< VectorD >::type >::invoke( n, d,
+ lld, ifirst, ilast, rtol1, rtol2, offset, w, wgap, werr, pivmin,
+ spdiam, twist, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larre.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/auxiliary/larre.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,80114 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARRE_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_AUXILIARY_LARRE_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for larre is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ float& vl, float& vu, const fortran_int_t il, const fortran_int_t iu,
+ float* d, float* e, float* e2, const float rtol1, const float rtol2,
+ const float spltol, fortran_int_t& nsplit, fortran_int_t* isplit,
+ fortran_int_t& m, float* w, float* werr, float* wgap,
+ fortran_int_t* iblock, fortran_int_t* indexw, float* gers,
+ float& pivmin, float* work, fortran_int_t* iwork ) {
+ fortran_int_t info(0);
+ LAPACK_SLARRE( &range, &n, &vl, &vu, &il, &iu, d, e, e2, &rtol1, &rtol2,
+ &spltol, &nsplit, isplit, &m, w, werr, wgap, iblock, indexw, gers,
+ &pivmin, work, iwork, &info );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ double& vl, double& vu, const fortran_int_t il,
+ const fortran_int_t iu, double* d, double* e, double* e2,
+ const double rtol1, const double rtol2, const double spltol,
+ fortran_int_t& nsplit, fortran_int_t* isplit, fortran_int_t& m,
+ double* w, double* werr, double* wgap, fortran_int_t* iblock,
+ fortran_int_t* indexw, double* gers, double& pivmin, double* work,
+ fortran_int_t* iwork ) {
+ fortran_int_t info(0);
+ LAPACK_DLARRE( &range, &n, &vl, &vu, &il, &iu, d, e, e2, &rtol1, &rtol2,
+ &spltol, &nsplit, isplit, &m, w, werr, wgap, iblock, indexw, gers,
+ &pivmin, work, iwork, &info );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to larre.
+//
+template< typename Value >
+struct larre_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename WORK, typename IWORK >
+ static std::ptrdiff_t invoke( const char range, const fortran_int_t n,
+ real_type& vl, real_type& vu, const fortran_int_t il,
+ const fortran_int_t iu, VectorD& d, VectorE& e, VectorE2& e2,
+ const real_type rtol1, const real_type rtol2,
+ const real_type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, real_type& pivmin,
+ detail::workspace2< WORK, IWORK > work ) {
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorE >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorE2 >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorW >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorWERR >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorWGAP >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorD >::type >::type,
+ typename remove_const< typename value<
+ VectorGERS >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorISPLIT >::type >::type,
+ typename remove_const< typename value<
+ VectorIBLOCK >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
+ typename value< VectorISPLIT >::type >::type,
+ typename remove_const< typename value<
+ VectorINDEXW >::type >::type >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorD >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorE >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorE2 >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorISPLIT >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorW >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorWERR >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorWGAP >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorIBLOCK >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorINDEXW >::value) );
+ BOOST_STATIC_ASSERT( (is_mutable< VectorGERS >::value) );
+ BOOST_ASSERT( range == 'A' || range == 'V' || range == 'I' );
+ BOOST_ASSERT( size(d) >= n );
+ BOOST_ASSERT( size(e) >= n );
+ BOOST_ASSERT( size(e2) >= n );
+ BOOST_ASSERT( size(gers) >= 2*n );
+ BOOST_ASSERT( size(indexw) >= n );
+ BOOST_ASSERT( size(isplit) >= n );
+ BOOST_ASSERT( size(w) >= n );
+ BOOST_ASSERT( size(werr) >= n );
+ BOOST_ASSERT( size(wgap) >= n );
+ BOOST_ASSERT( size(work.select(fortran_int_t())) >=
+ min_size_iwork( n ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work( n ));
+ return detail::larre( range, n, vl, vu, il, iu, begin_value(d),
+ begin_value(e), begin_value(e2), rtol1, rtol2, spltol, nsplit,
+ begin_value(isplit), m, begin_value(w), begin_value(werr),
+ begin_value(wgap), begin_value(iblock), begin_value(indexw),
+ begin_value(gers), pivmin,
+ begin_value(work.select(real_type())),
+ begin_value(work.select(fortran_int_t())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+ static std::ptrdiff_t invoke( const char range, const fortran_int_t n,
+ real_type& vl, real_type& vu, const fortran_int_t il,
+ const fortran_int_t iu, VectorD& d, VectorE& e, VectorE2& e2,
+ const real_type rtol1, const real_type rtol2,
+ const real_type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, real_type& pivmin,
+ minimal_workspace work ) {
+ bindings::detail::array< real_type > tmp_work( min_size_work( n ) );
+ bindings::detail::array< fortran_int_t > tmp_iwork(
+ min_size_iwork( n ) );
+ return invoke( range, n, vl, vu, il, iu, d, e, e2, rtol1, rtol2,
+ spltol, nsplit, isplit, m, w, werr, wgap, iblock, indexw,
+ gers, pivmin, workspace( tmp_work, tmp_iwork ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+ static std::ptrdiff_t invoke( const char range, const fortran_int_t n,
+ real_type& vl, real_type& vu, const fortran_int_t il,
+ const fortran_int_t iu, VectorD& d, VectorE& e, VectorE2& e2,
+ const real_type rtol1, const real_type rtol2,
+ const real_type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, real_type& pivmin,
+ optimal_workspace work ) {
+ return invoke( range, n, vl, vu, il, iu, d, e, e2, rtol1, rtol2,
+ spltol, nsplit, isplit, m, w, werr, wgap, iblock, indexw,
+ gers, pivmin, minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( const std::ptrdiff_t n ) {
+ return 6*n;
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array iwork.
+ //
+ static std::ptrdiff_t min_size_iwork( const std::ptrdiff_t n ) {
+ return 5*n;
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the larre_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, VectorGERS& gers, typename remove_imaginary<
+ typename value< VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap, VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ VectorWERR& werr, const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, VectorISPLIT& isplit, fortran_int_t& m,
+ const VectorW& w, const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu, VectorD& d,
+ const VectorE& e, const VectorE2& e2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol1,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol2, const typename remove_imaginary<
+ typename value< VectorD >::type >::type spltol,
+ fortran_int_t& nsplit, const VectorISPLIT& isplit,
+ fortran_int_t& m, const VectorW& w, const VectorWERR& werr,
+ const VectorWGAP& wgap, const VectorIBLOCK& iblock,
+ const VectorINDEXW& indexw, const VectorGERS& gers,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * User-defined workspace
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS, typename Workspace >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin, Workspace work ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin, work );
+}
+
+//
+// Overloaded function for larre. Its overload differs for
+// * const VectorD&
+// * const VectorE&
+// * const VectorE2&
+// * const VectorISPLIT&
+// * const VectorW&
+// * const VectorWERR&
+// * const VectorWGAP&
+// * const VectorIBLOCK&
+// * const VectorINDEXW&
+// * const VectorGERS&
+// * Default workspace-type (optimal)
+//
+template< typename VectorD, typename VectorE, typename VectorE2,
+ typename VectorISPLIT, typename VectorW, typename VectorWERR,
+ typename VectorWGAP, typename VectorIBLOCK, typename VectorINDEXW,
+ typename VectorGERS >
+inline std::ptrdiff_t larre( const char range, const fortran_int_t n,
+ typename remove_imaginary< typename value<
+ VectorD >::type >::type& vl, typename remove_imaginary<
+ typename value< VectorD >::type >::type& vu,
+ const fortran_int_t il, const fortran_int_t iu,
+ const VectorD& d, const VectorE& e, const VectorE2& e2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type rtol1, const typename remove_imaginary<
+ typename value< VectorD >::type >::type rtol2,
+ const typename remove_imaginary< typename value<
+ VectorD >::type >::type spltol, fortran_int_t& nsplit,
+ const VectorISPLIT& isplit, fortran_int_t& m, const VectorW& w,
+ const VectorWERR& werr, const VectorWGAP& wgap,
+ const VectorIBLOCK& iblock, const VectorINDEXW& indexw,
+ const VectorGERS& gers, typename remove_imaginary< typename value<
+ VectorD >::type >::type& pivmin ) {
+ return larre_impl< typename value< VectorD >::type >::invoke( range,
+ n, vl, vu, il, iu, d, e, e2, rtol1, rtol2, spltol, nsplit, isplit,
+ m, w, werr, wgap, iblock, indexw, gers, pivmin,
+ optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/bdsdc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/bdsdc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/bdsdc.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,8 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t bdsdc( char uplo, char compq, fortran_int_t n, float* d,
- float* e, float* u, fortran_int_t ldu, float* vt, fortran_int_t ldvt,
+inline std::ptrdiff_t bdsdc( const char uplo, const char compq,
+ const fortran_int_t n, float* d, float* e, float* u,
+ const fortran_int_t ldu, float* vt, const fortran_int_t ldvt,
         float* q, fortran_int_t* iq, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SBDSDC( &uplo, &compq, &n, d, e, u, &ldu, vt, &ldvt, q, iq, work,
@@ -64,10 +65,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t bdsdc( char uplo, char compq, fortran_int_t n, double* d,
- double* e, double* u, fortran_int_t ldu, double* vt,
- fortran_int_t ldvt, double* q, fortran_int_t* iq, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t bdsdc( const char uplo, const char compq,
+ const fortran_int_t n, double* d, double* e, double* u,
+ const fortran_int_t ldu, double* vt, const fortran_int_t ldvt,
+ double* q, fortran_int_t* iq, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DBDSDC( &uplo, &compq, &n, d, e, u, &ldu, vt, &ldvt, q, iq, work,
             iwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/bdsqr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/bdsqr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/bdsqr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t bdsqr( char uplo, fortran_int_t n, fortran_int_t ncvt,
- fortran_int_t nru, fortran_int_t ncc, float* d, float* e, float* vt,
- fortran_int_t ldvt, float* u, fortran_int_t ldu, float* c,
- fortran_int_t ldc, float* work ) {
+inline std::ptrdiff_t bdsqr( const char uplo, const fortran_int_t n,
+ const fortran_int_t ncvt, const fortran_int_t nru,
+ const fortran_int_t ncc, float* d, float* e, float* vt,
+ const fortran_int_t ldvt, float* u, const fortran_int_t ldu, float* c,
+ const fortran_int_t ldc, float* work ) {
     fortran_int_t info(0);
     LAPACK_SBDSQR( &uplo, &n, &ncvt, &nru, &ncc, d, e, vt, &ldvt, u, &ldu, c,
             &ldc, work, &info );
@@ -68,10 +69,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t bdsqr( char uplo, fortran_int_t n, fortran_int_t ncvt,
- fortran_int_t nru, fortran_int_t ncc, double* d, double* e,
- double* vt, fortran_int_t ldvt, double* u, fortran_int_t ldu,
- double* c, fortran_int_t ldc, double* work ) {
+inline std::ptrdiff_t bdsqr( const char uplo, const fortran_int_t n,
+ const fortran_int_t ncvt, const fortran_int_t nru,
+ const fortran_int_t ncc, double* d, double* e, double* vt,
+ const fortran_int_t ldvt, double* u, const fortran_int_t ldu,
+ double* c, const fortran_int_t ldc, double* work ) {
     fortran_int_t info(0);
     LAPACK_DBDSQR( &uplo, &n, &ncvt, &nru, &ncc, d, e, vt, &ldvt, u, &ldu, c,
             &ldc, work, &info );
@@ -83,11 +85,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t bdsqr( char uplo, fortran_int_t n, fortran_int_t ncvt,
- fortran_int_t nru, fortran_int_t ncc, float* d, float* e,
- std::complex<float>* vt, fortran_int_t ldvt, std::complex<float>* u,
- fortran_int_t ldu, std::complex<float>* c, fortran_int_t ldc,
- float* rwork ) {
+inline std::ptrdiff_t bdsqr( const char uplo, const fortran_int_t n,
+ const fortran_int_t ncvt, const fortran_int_t nru,
+ const fortran_int_t ncc, float* d, float* e, std::complex<float>* vt,
+ const fortran_int_t ldvt, std::complex<float>* u,
+ const fortran_int_t ldu, std::complex<float>* c,
+ const fortran_int_t ldc, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CBDSQR( &uplo, &n, &ncvt, &nru, &ncc, d, e, vt, &ldvt, u, &ldu, c,
             &ldc, rwork, &info );
@@ -99,11 +102,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t bdsqr( char uplo, fortran_int_t n, fortran_int_t ncvt,
- fortran_int_t nru, fortran_int_t ncc, double* d, double* e,
- std::complex<double>* vt, fortran_int_t ldvt, std::complex<double>* u,
- fortran_int_t ldu, std::complex<double>* c, fortran_int_t ldc,
- double* rwork ) {
+inline std::ptrdiff_t bdsqr( const char uplo, const fortran_int_t n,
+ const fortran_int_t ncvt, const fortran_int_t nru,
+ const fortran_int_t ncc, double* d, double* e,
+ std::complex<double>* vt, const fortran_int_t ldvt,
+ std::complex<double>* u, const fortran_int_t ldu,
+ std::complex<double>* c, const fortran_int_t ldc, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZBDSQR( &uplo, &n, &ncvt, &nru, &ncc, d, e, vt, &ldvt, u, &ldu, c,
             &ldc, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbbrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbbrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbbrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gbbrd( char vect, fortran_int_t m, fortran_int_t n,
- fortran_int_t ncc, fortran_int_t kl, fortran_int_t ku, float* ab,
- fortran_int_t ldab, float* d, float* e, float* q, fortran_int_t ldq,
- float* pt, fortran_int_t ldpt, float* c, fortran_int_t ldc,
- float* work ) {
+inline std::ptrdiff_t gbbrd( const char vect, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t ncc,
+ const fortran_int_t kl, const fortran_int_t ku, float* ab,
+ const fortran_int_t ldab, float* d, float* e, float* q,
+ const fortran_int_t ldq, float* pt, const fortran_int_t ldpt,
+ float* c, const fortran_int_t ldc, float* work ) {
     fortran_int_t info(0);
     LAPACK_SGBBRD( &vect, &m, &n, &ncc, &kl, &ku, ab, &ldab, d, e, q, &ldq,
             pt, &ldpt, c, &ldc, work, &info );
@@ -68,11 +69,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gbbrd( char vect, fortran_int_t m, fortran_int_t n,
- fortran_int_t ncc, fortran_int_t kl, fortran_int_t ku, double* ab,
- fortran_int_t ldab, double* d, double* e, double* q,
- fortran_int_t ldq, double* pt, fortran_int_t ldpt, double* c,
- fortran_int_t ldc, double* work ) {
+inline std::ptrdiff_t gbbrd( const char vect, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t ncc,
+ const fortran_int_t kl, const fortran_int_t ku, double* ab,
+ const fortran_int_t ldab, double* d, double* e, double* q,
+ const fortran_int_t ldq, double* pt, const fortran_int_t ldpt,
+ double* c, const fortran_int_t ldc, double* work ) {
     fortran_int_t info(0);
     LAPACK_DGBBRD( &vect, &m, &n, &ncc, &kl, &ku, ab, &ldab, d, e, q, &ldq,
             pt, &ldpt, c, &ldc, work, &info );
@@ -84,11 +86,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gbbrd( char vect, fortran_int_t m, fortran_int_t n,
- fortran_int_t ncc, fortran_int_t kl, fortran_int_t ku,
- std::complex<float>* ab, fortran_int_t ldab, float* d, float* e,
- std::complex<float>* q, fortran_int_t ldq, std::complex<float>* pt,
- fortran_int_t ldpt, std::complex<float>* c, fortran_int_t ldc,
+inline std::ptrdiff_t gbbrd( const char vect, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t ncc,
+ const fortran_int_t kl, const fortran_int_t ku,
+ std::complex<float>* ab, const fortran_int_t ldab, float* d, float* e,
+ std::complex<float>* q, const fortran_int_t ldq,
+ std::complex<float>* pt, const fortran_int_t ldpt,
+ std::complex<float>* c, const fortran_int_t ldc,
         std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGBBRD( &vect, &m, &n, &ncc, &kl, &ku, ab, &ldab, d, e, q, &ldq,
@@ -101,11 +105,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gbbrd( char vect, fortran_int_t m, fortran_int_t n,
- fortran_int_t ncc, fortran_int_t kl, fortran_int_t ku,
- std::complex<double>* ab, fortran_int_t ldab, double* d, double* e,
- std::complex<double>* q, fortran_int_t ldq, std::complex<double>* pt,
- fortran_int_t ldpt, std::complex<double>* c, fortran_int_t ldc,
+inline std::ptrdiff_t gbbrd( const char vect, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t ncc,
+ const fortran_int_t kl, const fortran_int_t ku,
+ std::complex<double>* ab, const fortran_int_t ldab, double* d,
+ double* e, std::complex<double>* q, const fortran_int_t ldq,
+ std::complex<double>* pt, const fortran_int_t ldpt,
+ std::complex<double>* c, const fortran_int_t ldc,
         std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGBBRD( &vect, &m, &n, &ncc, &kl, &ku, ab, &ldab, d, e, q, &ldq,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbcon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gbcon( char norm, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, const float* ab, fortran_int_t ldab,
- const fortran_int_t* ipiv, float anorm, float& rcond, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t gbcon( const char norm, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, const float* ab,
+ const fortran_int_t ldab, const fortran_int_t* ipiv,
+ const float anorm, float& rcond, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGBCON( &norm, &n, &kl, &ku, ab, &ldab, ipiv, &anorm, &rcond, work,
             iwork, &info );
@@ -67,9 +67,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gbcon( char norm, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, const double* ab, fortran_int_t ldab,
- const fortran_int_t* ipiv, double anorm, double& rcond, double* work,
+inline std::ptrdiff_t gbcon( const char norm, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, const double* ab,
+ const fortran_int_t ldab, const fortran_int_t* ipiv,
+ const double anorm, double& rcond, double* work,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGBCON( &norm, &n, &kl, &ku, ab, &ldab, ipiv, &anorm, &rcond, work,
@@ -82,9 +83,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gbcon( char norm, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, const std::complex<float>* ab, fortran_int_t ldab,
- const fortran_int_t* ipiv, float anorm, float& rcond,
+inline std::ptrdiff_t gbcon( const char norm, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const std::complex<float>* ab, const fortran_int_t ldab,
+ const fortran_int_t* ipiv, const float anorm, float& rcond,
         std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGBCON( &norm, &n, &kl, &ku, ab, &ldab, ipiv, &anorm, &rcond, work,
@@ -97,9 +99,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gbcon( char norm, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, const std::complex<double>* ab, fortran_int_t ldab,
- const fortran_int_t* ipiv, double anorm, double& rcond,
+inline std::ptrdiff_t gbcon( const char norm, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const std::complex<double>* ab, const fortran_int_t ldab,
+ const fortran_int_t* ipiv, const double anorm, double& rcond,
         std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGBCON( &norm, &n, &kl, &ku, ab, &ldab, ipiv, &anorm, &rcond, work,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbequ.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gbequ( fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, const float* ab,
- fortran_int_t ldab, float* r, float* c, float& rowcnd, float& colcnd,
- float& amax ) {
+inline std::ptrdiff_t gbequ( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, const float* ab,
+ const fortran_int_t ldab, float* r, float* c, float& rowcnd,
+ float& colcnd, float& amax ) {
     fortran_int_t info(0);
     LAPACK_SGBEQU( &m, &n, &kl, &ku, ab, &ldab, r, c, &rowcnd, &colcnd, &amax,
             &info );
@@ -65,9 +65,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gbequ( fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, const double* ab,
- fortran_int_t ldab, double* r, double* c, double& rowcnd,
+inline std::ptrdiff_t gbequ( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, const double* ab,
+ const fortran_int_t ldab, double* r, double* c, double& rowcnd,
         double& colcnd, double& amax ) {
     fortran_int_t info(0);
     LAPACK_DGBEQU( &m, &n, &kl, &ku, ab, &ldab, r, c, &rowcnd, &colcnd, &amax,
@@ -80,10 +80,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gbequ( fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, const std::complex<float>* ab,
- fortran_int_t ldab, float* r, float* c, float& rowcnd, float& colcnd,
- float& amax ) {
+inline std::ptrdiff_t gbequ( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const std::complex<float>* ab, const fortran_int_t ldab, float* r,
+ float* c, float& rowcnd, float& colcnd, float& amax ) {
     fortran_int_t info(0);
     LAPACK_CGBEQU( &m, &n, &kl, &ku, ab, &ldab, r, c, &rowcnd, &colcnd, &amax,
             &info );
@@ -95,10 +95,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gbequ( fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, const std::complex<double>* ab,
- fortran_int_t ldab, double* r, double* c, double& rowcnd,
- double& colcnd, double& amax ) {
+inline std::ptrdiff_t gbequ( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const std::complex<double>* ab, const fortran_int_t ldab, double* r,
+ double* c, double& rowcnd, double& colcnd, double& amax ) {
     fortran_int_t info(0);
     LAPACK_ZGBEQU( &m, &n, &kl, &ku, ab, &ldab, r, c, &rowcnd, &colcnd, &amax,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbrfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,12 +54,13 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbrfs( Trans, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, const float* ab,
- fortran_int_t ldab, const float* afb, fortran_int_t ldafb,
- const fortran_int_t* ipiv, const float* b, fortran_int_t ldb,
- float* x, fortran_int_t ldx, float* ferr, float* berr, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t gbrfs( Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, const float* ab, const fortran_int_t ldab,
+ const float* afb, const fortran_int_t ldafb,
+ const fortran_int_t* ipiv, const float* b, const fortran_int_t ldb,
+ float* x, const fortran_int_t ldx, float* ferr, float* berr,
+ float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGBRFS( &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs, ab,
             &ldab, afb, &ldafb, ipiv, b, &ldb, x, &ldx, ferr, berr, work,
@@ -73,11 +74,12 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbrfs( Trans, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, const double* ab,
- fortran_int_t ldab, const double* afb, fortran_int_t ldafb,
- const fortran_int_t* ipiv, const double* b, fortran_int_t ldb,
- double* x, fortran_int_t ldx, double* ferr, double* berr,
+inline std::ptrdiff_t gbrfs( Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, const double* ab, const fortran_int_t ldab,
+ const double* afb, const fortran_int_t ldafb,
+ const fortran_int_t* ipiv, const double* b, const fortran_int_t ldb,
+ double* x, const fortran_int_t ldx, double* ferr, double* berr,
         double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGBRFS( &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs, ab,
@@ -92,13 +94,14 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbrfs( Trans, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, const std::complex<float>* ab,
- fortran_int_t ldab, const std::complex<float>* afb,
- fortran_int_t ldafb, const fortran_int_t* ipiv,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float* ferr, float* berr,
- std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t gbrfs( Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, const std::complex<float>* ab,
+ const fortran_int_t ldab, const std::complex<float>* afb,
+ const fortran_int_t ldafb, const fortran_int_t* ipiv,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float* ferr,
+ float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGBRFS( &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs, ab,
             &ldab, afb, &ldafb, ipiv, b, &ldb, x, &ldx, ferr, berr, work,
@@ -112,12 +115,13 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbrfs( Trans, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, const std::complex<double>* ab,
- fortran_int_t ldab, const std::complex<double>* afb,
- fortran_int_t ldafb, const fortran_int_t* ipiv,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double* ferr,
+inline std::ptrdiff_t gbrfs( Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, const std::complex<double>* ab,
+ const fortran_int_t ldab, const std::complex<double>* afb,
+ const fortran_int_t ldafb, const fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double* ferr,
         double* berr, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGBRFS( &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs, ab,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -47,9 +47,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gbtrf( fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, float* ab, fortran_int_t ldab,
- fortran_int_t* ipiv ) {
+inline std::ptrdiff_t gbtrf( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, float* ab,
+ const fortran_int_t ldab, fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_SGBTRF( &m, &n, &kl, &ku, ab, &ldab, ipiv, &info );
     return info;
@@ -60,9 +60,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gbtrf( fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, double* ab, fortran_int_t ldab,
- fortran_int_t* ipiv ) {
+inline std::ptrdiff_t gbtrf( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku, double* ab,
+ const fortran_int_t ldab, fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_DGBTRF( &m, &n, &kl, &ku, ab, &ldab, ipiv, &info );
     return info;
@@ -73,9 +73,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gbtrf( fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, std::complex<float>* ab,
- fortran_int_t ldab, fortran_int_t* ipiv ) {
+inline std::ptrdiff_t gbtrf( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_CGBTRF( &m, &n, &kl, &ku, ab, &ldab, ipiv, &info );
     return info;
@@ -86,9 +87,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gbtrf( fortran_int_t m, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, std::complex<double>* ab,
- fortran_int_t ldab, fortran_int_t* ipiv ) {
+inline std::ptrdiff_t gbtrf( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_ZGBTRF( &m, &n, &kl, &ku, ab, &ldab, ipiv, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gbtrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,10 +49,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbtrs( Trans, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, const float* ab,
- fortran_int_t ldab, const fortran_int_t* ipiv, float* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gbtrs( Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, const float* ab, const fortran_int_t ldab,
+ const fortran_int_t* ipiv, float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SGBTRS( &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs, ab,
             &ldab, ipiv, b, &ldb, &info );
@@ -65,10 +65,10 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbtrs( Trans, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, const double* ab,
- fortran_int_t ldab, const fortran_int_t* ipiv, double* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gbtrs( Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, const double* ab, const fortran_int_t ldab,
+ const fortran_int_t* ipiv, double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DGBTRS( &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs, ab,
             &ldab, ipiv, b, &ldb, &info );
@@ -81,10 +81,11 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbtrs( Trans, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, const std::complex<float>* ab,
- fortran_int_t ldab, const fortran_int_t* ipiv, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gbtrs( Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, const std::complex<float>* ab,
+ const fortran_int_t ldab, const fortran_int_t* ipiv,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CGBTRS( &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs, ab,
             &ldab, ipiv, b, &ldb, &info );
@@ -97,10 +98,11 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbtrs( Trans, fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, const std::complex<double>* ab,
- fortran_int_t ldab, const fortran_int_t* ipiv,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t gbtrs( Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, const std::complex<double>* ab,
+ const fortran_int_t ldab, const fortran_int_t* ipiv,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZGBTRS( &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs, ab,
             &ldab, ipiv, b, &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebak.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebak.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebak.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gebak( char job, char side, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, const float* scale,
- fortran_int_t m, float* v, fortran_int_t ldv ) {
+inline std::ptrdiff_t gebak( const char job, const char side,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const float* scale, const fortran_int_t m,
+ float* v, const fortran_int_t ldv ) {
     fortran_int_t info(0);
     LAPACK_SGEBAK( &job, &side, &n, &ilo, &ihi, scale, &m, v, &ldv, &info );
     return info;
@@ -63,9 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gebak( char job, char side, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, const double* scale,
- fortran_int_t m, double* v, fortran_int_t ldv ) {
+inline std::ptrdiff_t gebak( const char job, const char side,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const double* scale, const fortran_int_t m,
+ double* v, const fortran_int_t ldv ) {
     fortran_int_t info(0);
     LAPACK_DGEBAK( &job, &side, &n, &ilo, &ihi, scale, &m, v, &ldv, &info );
     return info;
@@ -76,9 +78,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gebak( char job, char side, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, const float* scale,
- fortran_int_t m, std::complex<float>* v, fortran_int_t ldv ) {
+inline std::ptrdiff_t gebak( const char job, const char side,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const float* scale, const fortran_int_t m,
+ std::complex<float>* v, const fortran_int_t ldv ) {
     fortran_int_t info(0);
     LAPACK_CGEBAK( &job, &side, &n, &ilo, &ihi, scale, &m, v, &ldv, &info );
     return info;
@@ -89,9 +92,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gebak( char job, char side, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, const double* scale,
- fortran_int_t m, std::complex<double>* v, fortran_int_t ldv ) {
+inline std::ptrdiff_t gebak( const char job, const char side,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const double* scale, const fortran_int_t m,
+ std::complex<double>* v, const fortran_int_t ldv ) {
     fortran_int_t info(0);
     LAPACK_ZGEBAK( &job, &side, &n, &ilo, &ihi, scale, &m, v, &ldv, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebal.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebal.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebal.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,8 +50,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gebal( char job, fortran_int_t n, float* a,
- fortran_int_t lda, fortran_int_t& ilo, fortran_int_t& ihi,
+inline std::ptrdiff_t gebal( const char job, const fortran_int_t n, float* a,
+ const fortran_int_t lda, fortran_int_t& ilo, fortran_int_t& ihi,
         float* scale ) {
     fortran_int_t info(0);
     LAPACK_SGEBAL( &job, &n, a, &lda, &ilo, &ihi, scale, &info );
@@ -63,8 +63,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gebal( char job, fortran_int_t n, double* a,
- fortran_int_t lda, fortran_int_t& ilo, fortran_int_t& ihi,
+inline std::ptrdiff_t gebal( const char job, const fortran_int_t n, double* a,
+ const fortran_int_t lda, fortran_int_t& ilo, fortran_int_t& ihi,
         double* scale ) {
     fortran_int_t info(0);
     LAPACK_DGEBAL( &job, &n, a, &lda, &ilo, &ihi, scale, &info );
@@ -76,9 +76,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gebal( char job, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, fortran_int_t& ilo, fortran_int_t& ihi,
- float* scale ) {
+inline std::ptrdiff_t gebal( const char job, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, fortran_int_t& ilo,
+ fortran_int_t& ihi, float* scale ) {
     fortran_int_t info(0);
     LAPACK_CGEBAL( &job, &n, a, &lda, &ilo, &ihi, scale, &info );
     return info;
@@ -89,8 +89,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gebal( char job, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, fortran_int_t& ilo,
+inline std::ptrdiff_t gebal( const char job, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, fortran_int_t& ilo,
         fortran_int_t& ihi, double* scale ) {
     fortran_int_t info(0);
     LAPACK_ZGEBAL( &job, &n, a, &lda, &ilo, &ihi, scale, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gebrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gebrd( fortran_int_t m, fortran_int_t n, float* a,
- fortran_int_t lda, float* d, float* e, float* tauq, float* taup,
- float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gebrd( const fortran_int_t m, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* d, float* e, float* tauq,
+ float* taup, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGEBRD( &m, &n, a, &lda, d, e, tauq, taup, work, &lwork, &info );
     return info;
@@ -66,9 +66,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gebrd( fortran_int_t m, fortran_int_t n, double* a,
- fortran_int_t lda, double* d, double* e, double* tauq, double* taup,
- double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gebrd( const fortran_int_t m, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* d, double* e,
+ double* tauq, double* taup, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGEBRD( &m, &n, a, &lda, d, e, tauq, taup, work, &lwork, &info );
     return info;
@@ -79,10 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gebrd( fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, float* d, float* e,
+inline std::ptrdiff_t gebrd( const fortran_int_t m, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, float* d, float* e,
         std::complex<float>* tauq, std::complex<float>* taup,
- std::complex<float>* work, fortran_int_t lwork ) {
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGEBRD( &m, &n, a, &lda, d, e, tauq, taup, work, &lwork, &info );
     return info;
@@ -93,10 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gebrd( fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, double* d, double* e,
- std::complex<double>* tauq, std::complex<double>* taup,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gebrd( const fortran_int_t m, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, double* d,
+ double* e, std::complex<double>* tauq, std::complex<double>* taup,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEBRD( &m, &n, a, &lda, d, e, tauq, taup, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gecon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gecon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gecon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gecon( char norm, fortran_int_t n, const float* a,
- fortran_int_t lda, float anorm, float& rcond, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t gecon( const char norm, const fortran_int_t n,
+ const float* a, const fortran_int_t lda, const float anorm,
+ float& rcond, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGECON( &norm, &n, a, &lda, &anorm, &rcond, work, iwork, &info );
     return info;
@@ -65,9 +65,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gecon( char norm, fortran_int_t n, const double* a,
- fortran_int_t lda, double anorm, double& rcond, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t gecon( const char norm, const fortran_int_t n,
+ const double* a, const fortran_int_t lda, const double anorm,
+ double& rcond, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGECON( &norm, &n, a, &lda, &anorm, &rcond, work, iwork, &info );
     return info;
@@ -78,9 +78,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gecon( char norm, fortran_int_t n,
- const std::complex<float>* a, fortran_int_t lda, float anorm,
- float& rcond, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t gecon( const char norm, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const float anorm, float& rcond, std::complex<float>* work,
+ float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGECON( &norm, &n, a, &lda, &anorm, &rcond, work, rwork, &info );
     return info;
@@ -91,9 +92,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gecon( char norm, fortran_int_t n,
- const std::complex<double>* a, fortran_int_t lda, double anorm,
- double& rcond, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t gecon( const char norm, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const double anorm, double& rcond, std::complex<double>* work,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGECON( &norm, &n, a, &lda, &anorm, &rcond, work, rwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geequ.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t geequ( fortran_int_t m, fortran_int_t n, const float* a,
- fortran_int_t lda, float* r, float* c, float& rowcnd, float& colcnd,
- float& amax ) {
+inline std::ptrdiff_t geequ( const fortran_int_t m, const fortran_int_t n,
+ const float* a, const fortran_int_t lda, float* r, float* c,
+ float& rowcnd, float& colcnd, float& amax ) {
     fortran_int_t info(0);
     LAPACK_SGEEQU( &m, &n, a, &lda, r, c, &rowcnd, &colcnd, &amax, &info );
     return info;
@@ -63,9 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t geequ( fortran_int_t m, fortran_int_t n, const double* a,
- fortran_int_t lda, double* r, double* c, double& rowcnd,
- double& colcnd, double& amax ) {
+inline std::ptrdiff_t geequ( const fortran_int_t m, const fortran_int_t n,
+ const double* a, const fortran_int_t lda, double* r, double* c,
+ double& rowcnd, double& colcnd, double& amax ) {
     fortran_int_t info(0);
     LAPACK_DGEEQU( &m, &n, a, &lda, r, c, &rowcnd, &colcnd, &amax, &info );
     return info;
@@ -76,9 +76,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t geequ( fortran_int_t m, fortran_int_t n,
- const std::complex<float>* a, fortran_int_t lda, float* r, float* c,
- float& rowcnd, float& colcnd, float& amax ) {
+inline std::ptrdiff_t geequ( const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda, float* r,
+ float* c, float& rowcnd, float& colcnd, float& amax ) {
     fortran_int_t info(0);
     LAPACK_CGEEQU( &m, &n, a, &lda, r, c, &rowcnd, &colcnd, &amax, &info );
     return info;
@@ -89,8 +89,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t geequ( fortran_int_t m, fortran_int_t n,
- const std::complex<double>* a, fortran_int_t lda, double* r,
+inline std::ptrdiff_t geequ( const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda, double* r,
         double* c, double& rowcnd, double& colcnd, double& amax ) {
     fortran_int_t info(0);
     LAPACK_ZGEEQU( &m, &n, a, &lda, r, c, &rowcnd, &colcnd, &amax, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gehrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gehrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gehrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gehrd( fortran_int_t n, fortran_int_t ilo,
- fortran_int_t ihi, float* a, fortran_int_t lda, float* tau,
- float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gehrd( const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, float* a, const fortran_int_t lda,
+ float* tau, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGEHRD( &n, &ilo, &ihi, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -66,9 +66,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gehrd( fortran_int_t n, fortran_int_t ilo,
- fortran_int_t ihi, double* a, fortran_int_t lda, double* tau,
- double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gehrd( const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, double* a, const fortran_int_t lda,
+ double* tau, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGEHRD( &n, &ilo, &ihi, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -79,10 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gehrd( fortran_int_t n, fortran_int_t ilo,
- fortran_int_t ihi, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* tau, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t gehrd( const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* tau,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGEHRD( &n, &ilo, &ihi, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -93,10 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gehrd( fortran_int_t n, fortran_int_t ilo,
- fortran_int_t ihi, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* tau, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t gehrd( const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* tau,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEHRD( &n, &ilo, &ihi, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gelqf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gelqf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gelqf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,8 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gelqf( fortran_int_t m, fortran_int_t n, float* a,
- fortran_int_t lda, float* tau, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gelqf( const fortran_int_t m, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* tau, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGELQF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -65,8 +66,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gelqf( fortran_int_t m, fortran_int_t n, double* a,
- fortran_int_t lda, double* tau, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gelqf( const fortran_int_t m, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* tau, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGELQF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -77,9 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gelqf( fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* tau,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gelqf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* tau, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGELQF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -90,9 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gelqf( fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* tau,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gelqf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* tau, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGELQF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqlf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqlf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqlf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,8 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t geqlf( fortran_int_t m, fortran_int_t n, float* a,
- fortran_int_t lda, float* tau, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t geqlf( const fortran_int_t m, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* tau, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGEQLF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -65,8 +66,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t geqlf( fortran_int_t m, fortran_int_t n, double* a,
- fortran_int_t lda, double* tau, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t geqlf( const fortran_int_t m, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* tau, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGEQLF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -77,9 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t geqlf( fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* tau,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t geqlf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* tau, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGEQLF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -90,9 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t geqlf( fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* tau,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t geqlf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* tau, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEQLF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqp3.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqp3.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqp3.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t geqp3( fortran_int_t m, fortran_int_t n, float* a,
- fortran_int_t lda, fortran_int_t* jpvt, float* tau, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t geqp3( const fortran_int_t m, const fortran_int_t n,
+ float* a, const fortran_int_t lda, fortran_int_t* jpvt, float* tau,
+ float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGEQP3( &m, &n, a, &lda, jpvt, tau, work, &lwork, &info );
     return info;
@@ -66,9 +66,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t geqp3( fortran_int_t m, fortran_int_t n, double* a,
- fortran_int_t lda, fortran_int_t* jpvt, double* tau, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t geqp3( const fortran_int_t m, const fortran_int_t n,
+ double* a, const fortran_int_t lda, fortran_int_t* jpvt, double* tau,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGEQP3( &m, &n, a, &lda, jpvt, tau, work, &lwork, &info );
     return info;
@@ -79,10 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t geqp3( fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, fortran_int_t* jpvt,
+inline std::ptrdiff_t geqp3( const fortran_int_t m, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, fortran_int_t* jpvt,
         std::complex<float>* tau, std::complex<float>* work,
- fortran_int_t lwork, float* rwork ) {
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGEQP3( &m, &n, a, &lda, jpvt, tau, work, &lwork, rwork, &info );
     return info;
@@ -93,10 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t geqp3( fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, fortran_int_t* jpvt,
+inline std::ptrdiff_t geqp3( const fortran_int_t m, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, fortran_int_t* jpvt,
         std::complex<double>* tau, std::complex<double>* work,
- fortran_int_t lwork, double* rwork ) {
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEQP3( &m, &n, a, &lda, jpvt, tau, work, &lwork, rwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/geqrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,8 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t geqrf( fortran_int_t m, fortran_int_t n, float* a,
- fortran_int_t lda, float* tau, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t geqrf( const fortran_int_t m, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* tau, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGEQRF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -65,8 +66,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t geqrf( fortran_int_t m, fortran_int_t n, double* a,
- fortran_int_t lda, double* tau, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t geqrf( const fortran_int_t m, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* tau, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGEQRF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -77,9 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t geqrf( fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* tau,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t geqrf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* tau, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGEQRF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -90,9 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t geqrf( fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* tau,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t geqrf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* tau, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEQRF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,11 +54,12 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gerfs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const float* a, fortran_int_t lda, const float* af,
- fortran_int_t ldaf, const fortran_int_t* ipiv, const float* b,
- fortran_int_t ldb, float* x, fortran_int_t ldx, float* ferr,
- float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gerfs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* a, const fortran_int_t lda,
+ const float* af, const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float* ferr, float* berr, float* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGERFS( &lapack_option< Trans >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -71,11 +72,12 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gerfs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const double* a, fortran_int_t lda, const double* af,
- fortran_int_t ldaf, const fortran_int_t* ipiv, const double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double* ferr,
- double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gerfs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* a, const fortran_int_t lda,
+ const double* af, const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double* ferr, double* berr, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGERFS( &lapack_option< Trans >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -88,12 +90,13 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gerfs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* af, fortran_int_t ldaf,
- const fortran_int_t* ipiv, const std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* x, fortran_int_t ldx,
- float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t gerfs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* af,
+ const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float* ferr,
+ float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGERFS( &lapack_option< Trans >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, rwork, &info );
@@ -106,13 +109,13 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gerfs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* af, fortran_int_t ldaf,
- const fortran_int_t* ipiv, const std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double* ferr, double* berr, std::complex<double>* work,
- double* rwork ) {
+inline std::ptrdiff_t gerfs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* af,
+ const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double* ferr,
+ double* berr, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGERFS( &lapack_option< Trans >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerqf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerqf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gerqf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,8 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gerqf( fortran_int_t m, fortran_int_t n, float* a,
- fortran_int_t lda, float* tau, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gerqf( const fortran_int_t m, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* tau, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGERQF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -65,8 +66,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gerqf( fortran_int_t m, fortran_int_t n, double* a,
- fortran_int_t lda, double* tau, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gerqf( const fortran_int_t m, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* tau, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGERQF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -77,9 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gerqf( fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* tau,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gerqf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* tau, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGERQF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -90,9 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gerqf( fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* tau,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gerqf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* tau, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGERQF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -57,8 +57,8 @@
 // * float value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getrf( Order, int m, int n, float* a, int lda,
- int* ipiv ) {
+inline std::ptrdiff_t getrf( Order, const int m, const int n, float* a,
+ const int lda, int* ipiv ) {
     return clapack_sgetrf( clapack_option< Order >::value, m, n, a, lda,
             ipiv );
 }
@@ -69,8 +69,8 @@
 // * double value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getrf( Order, int m, int n, double* a, int lda,
- int* ipiv ) {
+inline std::ptrdiff_t getrf( Order, const int m, const int n, double* a,
+ const int lda, int* ipiv ) {
     return clapack_dgetrf( clapack_option< Order >::value, m, n, a, lda,
             ipiv );
 }
@@ -81,8 +81,8 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getrf( Order, int m, int n, std::complex<float>* a,
- int lda, int* ipiv ) {
+inline std::ptrdiff_t getrf( Order, const int m, const int n,
+ std::complex<float>* a, const int lda, int* ipiv ) {
     return clapack_cgetrf( clapack_option< Order >::value, m, n, a, lda,
             ipiv );
 }
@@ -93,8 +93,8 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getrf( Order, int m, int n, std::complex<double>* a,
- int lda, int* ipiv ) {
+inline std::ptrdiff_t getrf( Order, const int m, const int n,
+ std::complex<double>* a, const int lda, int* ipiv ) {
     return clapack_zgetrf( clapack_option< Order >::value, m, n, a, lda,
             ipiv );
 }
@@ -106,8 +106,9 @@
 // * float value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getrf( Order, fortran_int_t m, fortran_int_t n, float* a,
- fortran_int_t lda, fortran_int_t* ipiv ) {
+inline std::ptrdiff_t getrf( Order, const fortran_int_t m,
+ const fortran_int_t n, float* a, const fortran_int_t lda,
+ fortran_int_t* ipiv ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_SGETRF( &m, &n, a, &lda, ipiv, &info );
@@ -120,8 +121,9 @@
 // * double value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getrf( Order, fortran_int_t m, fortran_int_t n,
- double* a, fortran_int_t lda, fortran_int_t* ipiv ) {
+inline std::ptrdiff_t getrf( Order, const fortran_int_t m,
+ const fortran_int_t n, double* a, const fortran_int_t lda,
+ fortran_int_t* ipiv ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DGETRF( &m, &n, a, &lda, ipiv, &info );
@@ -134,8 +136,9 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getrf( Order, fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, fortran_int_t* ipiv ) {
+inline std::ptrdiff_t getrf( Order, const fortran_int_t m,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, fortran_int_t* ipiv ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CGETRF( &m, &n, a, &lda, ipiv, &info );
@@ -148,8 +151,9 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getrf( Order, fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, fortran_int_t* ipiv ) {
+inline std::ptrdiff_t getrf( Order, const fortran_int_t m,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, fortran_int_t* ipiv ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZGETRF( &m, &n, a, &lda, ipiv, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getri.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getri.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getri.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -63,8 +63,8 @@
 // * float value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getri( Order, int n, float* a, int lda, const int* ipiv,
- float* work, int lwork ) {
+inline std::ptrdiff_t getri( Order, const int n, float* a, const int lda,
+ const int* ipiv, float* work, const int lwork ) {
     return clapack_sgetri( clapack_option< Order >::value, n, a, lda, ipiv );
 }
 
@@ -74,8 +74,8 @@
 // * double value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getri( Order, int n, double* a, int lda, const int* ipiv,
- double* work, int lwork ) {
+inline std::ptrdiff_t getri( Order, const int n, double* a, const int lda,
+ const int* ipiv, double* work, const int lwork ) {
     return clapack_dgetri( clapack_option< Order >::value, n, a, lda, ipiv );
 }
 
@@ -85,8 +85,9 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getri( Order, int n, std::complex<float>* a, int lda,
- const int* ipiv, std::complex<float>* work, int lwork ) {
+inline std::ptrdiff_t getri( Order, const int n, std::complex<float>* a,
+ const int lda, const int* ipiv, std::complex<float>* work,
+ const int lwork ) {
     return clapack_cgetri( clapack_option< Order >::value, n, a, lda, ipiv );
 }
 
@@ -96,8 +97,9 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getri( Order, int n, std::complex<double>* a, int lda,
- const int* ipiv, std::complex<double>* work, int lwork ) {
+inline std::ptrdiff_t getri( Order, const int n, std::complex<double>* a,
+ const int lda, const int* ipiv, std::complex<double>* work,
+ const int lwork ) {
     return clapack_zgetri( clapack_option< Order >::value, n, a, lda, ipiv );
 }
 
@@ -108,9 +110,9 @@
 // * float value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getri( Order, fortran_int_t n, float* a,
- fortran_int_t lda, const fortran_int_t* ipiv, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t getri( Order, const fortran_int_t n, float* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv, float* work,
+ const fortran_int_t lwork ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_SGETRI( &n, a, &lda, ipiv, work, &lwork, &info );
@@ -123,9 +125,9 @@
 // * double value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getri( Order, fortran_int_t n, double* a,
- fortran_int_t lda, const fortran_int_t* ipiv, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t getri( Order, const fortran_int_t n, double* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv, double* work,
+ const fortran_int_t lwork ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DGETRI( &n, a, &lda, ipiv, work, &lwork, &info );
@@ -138,9 +140,10 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getri( Order, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, const fortran_int_t* ipiv,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t getri( Order, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CGETRI( &n, a, &lda, ipiv, work, &lwork, &info );
@@ -153,9 +156,10 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t getri( Order, fortran_int_t n, std::complex<double>* a,
- fortran_int_t lda, const fortran_int_t* ipiv,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t getri( Order, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZGETRI( &n, a, &lda, ipiv, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/getrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -58,8 +58,9 @@
 // * float value-type.
 //
 template< typename Order, typename Trans >
-inline std::ptrdiff_t getrs( Order, Trans, int n, int nrhs, const float* a,
- int lda, const int* ipiv, float* b, int ldb ) {
+inline std::ptrdiff_t getrs( Order, Trans, const int n, const int nrhs,
+ const float* a, const int lda, const int* ipiv, float* b,
+ const int ldb ) {
     return clapack_sgetrs
    ( clapack_option< Order >::value, clapack_option< Trans >::value, n, nrhs,
            a, lda, ipiv, b, ldb );
@@ -71,8 +72,9 @@
 // * double value-type.
 //
 template< typename Order, typename Trans >
-inline std::ptrdiff_t getrs( Order, Trans, int n, int nrhs, const double* a,
- int lda, const int* ipiv, double* b, int ldb ) {
+inline std::ptrdiff_t getrs( Order, Trans, const int n, const int nrhs,
+ const double* a, const int lda, const int* ipiv, double* b,
+ const int ldb ) {
     return clapack_dgetrs
    ( clapack_option< Order >::value, clapack_option< Trans >::value, n, nrhs,
            a, lda, ipiv, b, ldb );
@@ -84,9 +86,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename Trans >
-inline std::ptrdiff_t getrs( Order, Trans, int n, int nrhs,
- const std::complex<float>* a, int lda, const int* ipiv,
- std::complex<float>* b, int ldb ) {
+inline std::ptrdiff_t getrs( Order, Trans, const int n, const int nrhs,
+ const std::complex<float>* a, const int lda, const int* ipiv,
+ std::complex<float>* b, const int ldb ) {
     return clapack_cgetrs
    ( clapack_option< Order >::value, clapack_option< Trans >::value, n, nrhs,
            a, lda, ipiv, b, ldb );
@@ -98,9 +100,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename Trans >
-inline std::ptrdiff_t getrs( Order, Trans, int n, int nrhs,
- const std::complex<double>* a, int lda, const int* ipiv,
- std::complex<double>* b, int ldb ) {
+inline std::ptrdiff_t getrs( Order, Trans, const int n, const int nrhs,
+ const std::complex<double>* a, const int lda, const int* ipiv,
+ std::complex<double>* b, const int ldb ) {
     return clapack_zgetrs
    ( clapack_option< Order >::value, clapack_option< Trans >::value, n, nrhs,
            a, lda, ipiv, b, ldb );
@@ -113,9 +115,9 @@
 // * float value-type.
 //
 template< typename Order, typename Trans >
-inline std::ptrdiff_t getrs( Order, Trans, fortran_int_t n, fortran_int_t nrhs,
- const float* a, fortran_int_t lda, const fortran_int_t* ipiv,
- float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t getrs( Order, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, float* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_SGETRS( &lapack_option< Trans >::value, &n, &nrhs, a, &lda, ipiv,
@@ -129,9 +131,9 @@
 // * double value-type.
 //
 template< typename Order, typename Trans >
-inline std::ptrdiff_t getrs( Order, Trans, fortran_int_t n, fortran_int_t nrhs,
- const double* a, fortran_int_t lda, const fortran_int_t* ipiv,
- double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t getrs( Order, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, double* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DGETRS( &lapack_option< Trans >::value, &n, &nrhs, a, &lda, ipiv,
@@ -145,10 +147,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename Trans >
-inline std::ptrdiff_t getrs( Order, Trans, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t getrs( Order, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CGETRS( &lapack_option< Trans >::value, &n, &nrhs, a, &lda, ipiv,
@@ -162,10 +164,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename Trans >
-inline std::ptrdiff_t getrs( Order, Trans, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t getrs( Order, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZGETRS( &lapack_option< Trans >::value, &n, &nrhs, a, &lda, ipiv,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbak.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbak.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbak.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggbak( char job, char side, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, const float* lscale,
- const float* rscale, fortran_int_t m, float* v, fortran_int_t ldv ) {
+inline std::ptrdiff_t ggbak( const char job, const char side,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const float* lscale, const float* rscale,
+ const fortran_int_t m, float* v, const fortran_int_t ldv ) {
     fortran_int_t info(0);
     LAPACK_SGGBAK( &job, &side, &n, &ilo, &ihi, lscale, rscale, &m, v, &ldv,
             &info );
@@ -64,9 +65,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggbak( char job, char side, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, const double* lscale,
- const double* rscale, fortran_int_t m, double* v, fortran_int_t ldv ) {
+inline std::ptrdiff_t ggbak( const char job, const char side,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const double* lscale, const double* rscale,
+ const fortran_int_t m, double* v, const fortran_int_t ldv ) {
     fortran_int_t info(0);
     LAPACK_DGGBAK( &job, &side, &n, &ilo, &ihi, lscale, rscale, &m, v, &ldv,
             &info );
@@ -78,10 +80,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggbak( char job, char side, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, const float* lscale,
- const float* rscale, fortran_int_t m, std::complex<float>* v,
- fortran_int_t ldv ) {
+inline std::ptrdiff_t ggbak( const char job, const char side,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const float* lscale, const float* rscale,
+ const fortran_int_t m, std::complex<float>* v,
+ const fortran_int_t ldv ) {
     fortran_int_t info(0);
     LAPACK_CGGBAK( &job, &side, &n, &ilo, &ihi, lscale, rscale, &m, v, &ldv,
             &info );
@@ -93,10 +96,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggbak( char job, char side, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, const double* lscale,
- const double* rscale, fortran_int_t m, std::complex<double>* v,
- fortran_int_t ldv ) {
+inline std::ptrdiff_t ggbak( const char job, const char side,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const double* lscale, const double* rscale,
+ const fortran_int_t m, std::complex<double>* v,
+ const fortran_int_t ldv ) {
     fortran_int_t info(0);
     LAPACK_ZGGBAK( &job, &side, &n, &ilo, &ihi, lscale, rscale, &m, v, &ldv,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbal.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbal.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggbal.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggbal( char job, fortran_int_t n, float* a,
- fortran_int_t lda, float* b, fortran_int_t ldb, fortran_int_t& ilo,
- fortran_int_t& ihi, float* lscale, float* rscale, float* work ) {
+inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb,
+ fortran_int_t& ilo, fortran_int_t& ihi, float* lscale, float* rscale,
+ float* work ) {
     fortran_int_t info(0);
     LAPACK_SGGBAL( &job, &n, a, &lda, b, &ldb, &ilo, &ihi, lscale, rscale,
             work, &info );
@@ -66,9 +67,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggbal( char job, fortran_int_t n, double* a,
- fortran_int_t lda, double* b, fortran_int_t ldb, fortran_int_t& ilo,
- fortran_int_t& ihi, double* lscale, double* rscale, double* work ) {
+inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ fortran_int_t& ilo, fortran_int_t& ihi, double* lscale,
+ double* rscale, double* work ) {
     fortran_int_t info(0);
     LAPACK_DGGBAL( &job, &n, a, &lda, b, &ldb, &ilo, &ihi, lscale, rscale,
             work, &info );
@@ -80,10 +82,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggbal( char job, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, std::complex<float>* b, fortran_int_t ldb,
- fortran_int_t& ilo, fortran_int_t& ihi, float* lscale, float* rscale,
- float* work ) {
+inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* b, const fortran_int_t ldb, fortran_int_t& ilo,
+ fortran_int_t& ihi, float* lscale, float* rscale, float* work ) {
     fortran_int_t info(0);
     LAPACK_CGGBAL( &job, &n, a, &lda, b, &ldb, &ilo, &ihi, lscale, rscale,
             work, &info );
@@ -95,10 +97,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggbal( char job, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, fortran_int_t& ilo, fortran_int_t& ihi,
- double* lscale, double* rscale, double* work ) {
+inline std::ptrdiff_t ggbal( const char job, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb, fortran_int_t& ilo,
+ fortran_int_t& ihi, double* lscale, double* rscale, double* work ) {
     fortran_int_t info(0);
     LAPACK_ZGGBAL( &job, &n, a, &lda, b, &ldb, &ilo, &ihi, lscale, rscale,
             work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gghrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gghrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gghrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -47,10 +47,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gghrd( char compq, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, float* a, fortran_int_t lda,
- float* b, fortran_int_t ldb, float* q, fortran_int_t ldq, float* z,
- fortran_int_t ldz ) {
+inline std::ptrdiff_t gghrd( const char compq, const char compz,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* q, const fortran_int_t ldq, float* z,
+ const fortran_int_t ldz ) {
     fortran_int_t info(0);
     LAPACK_SGGHRD( &compq, &compz, &n, &ilo, &ihi, a, &lda, b, &ldb, q, &ldq,
             z, &ldz, &info );
@@ -62,10 +63,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gghrd( char compq, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, double* a, fortran_int_t lda,
- double* b, fortran_int_t ldb, double* q, fortran_int_t ldq, double* z,
- fortran_int_t ldz ) {
+inline std::ptrdiff_t gghrd( const char compq, const char compz,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, double* a, const fortran_int_t lda,
+ double* b, const fortran_int_t ldb, double* q,
+ const fortran_int_t ldq, double* z, const fortran_int_t ldz ) {
     fortran_int_t info(0);
     LAPACK_DGGHRD( &compq, &compz, &n, &ilo, &ihi, a, &lda, b, &ldb, q, &ldq,
             z, &ldz, &info );
@@ -77,11 +79,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gghrd( char compq, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, std::complex<float>* a,
- fortran_int_t lda, std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* q, fortran_int_t ldq, std::complex<float>* z,
- fortran_int_t ldz ) {
+inline std::ptrdiff_t gghrd( const char compq, const char compz,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* q,
+ const fortran_int_t ldq, std::complex<float>* z,
+ const fortran_int_t ldz ) {
     fortran_int_t info(0);
     LAPACK_CGGHRD( &compq, &compz, &n, &ilo, &ihi, a, &lda, b, &ldb, q, &ldq,
             z, &ldz, &info );
@@ -93,11 +97,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gghrd( char compq, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, std::complex<double>* a,
- fortran_int_t lda, std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* q, fortran_int_t ldq, std::complex<double>* z,
- fortran_int_t ldz ) {
+inline std::ptrdiff_t gghrd( const char compq, const char compz,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* q,
+ const fortran_int_t ldq, std::complex<double>* z,
+ const fortran_int_t ldz ) {
     fortran_int_t info(0);
     LAPACK_ZGGHRD( &compq, &compz, &n, &ilo, &ihi, a, &lda, b, &ldb, q, &ldq,
             z, &ldz, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggqrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggqrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggqrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggqrf( fortran_int_t n, fortran_int_t m, fortran_int_t p,
- float* a, fortran_int_t lda, float* taua, float* b, fortran_int_t ldb,
- float* taub, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggqrf( const fortran_int_t n, const fortran_int_t m,
+ const fortran_int_t p, float* a, const fortran_int_t lda, float* taua,
+ float* b, const fortran_int_t ldb, float* taub, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGGQRF( &n, &m, &p, a, &lda, taua, b, &ldb, taub, work, &lwork,
             &info );
@@ -67,9 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggqrf( fortran_int_t n, fortran_int_t m, fortran_int_t p,
- double* a, fortran_int_t lda, double* taua, double* b,
- fortran_int_t ldb, double* taub, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggqrf( const fortran_int_t n, const fortran_int_t m,
+ const fortran_int_t p, double* a, const fortran_int_t lda,
+ double* taua, double* b, const fortran_int_t ldb, double* taub,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGGQRF( &n, &m, &p, a, &lda, taua, b, &ldb, taub, work, &lwork,
             &info );
@@ -81,10 +83,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggqrf( fortran_int_t n, fortran_int_t m, fortran_int_t p,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* taua,
- std::complex<float>* b, fortran_int_t ldb, std::complex<float>* taub,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggqrf( const fortran_int_t n, const fortran_int_t m,
+ const fortran_int_t p, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* taua,
+ std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* taub, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGGQRF( &n, &m, &p, a, &lda, taua, b, &ldb, taub, work, &lwork,
             &info );
@@ -96,11 +100,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggqrf( fortran_int_t n, fortran_int_t m, fortran_int_t p,
- std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* taua, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* taub,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggqrf( const fortran_int_t n, const fortran_int_t m,
+ const fortran_int_t p, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* taua,
+ std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* taub, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGQRF( &n, &m, &p, a, &lda, taua, b, &ldb, taub, work, &lwork,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggrqf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggrqf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggrqf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggrqf( fortran_int_t m, fortran_int_t p, fortran_int_t n,
- float* a, fortran_int_t lda, float* taua, float* b, fortran_int_t ldb,
- float* taub, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggrqf( const fortran_int_t m, const fortran_int_t p,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* taua,
+ float* b, const fortran_int_t ldb, float* taub, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGGRQF( &m, &p, &n, a, &lda, taua, b, &ldb, taub, work, &lwork,
             &info );
@@ -67,9 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggrqf( fortran_int_t m, fortran_int_t p, fortran_int_t n,
- double* a, fortran_int_t lda, double* taua, double* b,
- fortran_int_t ldb, double* taub, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggrqf( const fortran_int_t m, const fortran_int_t p,
+ const fortran_int_t n, double* a, const fortran_int_t lda,
+ double* taua, double* b, const fortran_int_t ldb, double* taub,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGGRQF( &m, &p, &n, a, &lda, taua, b, &ldb, taub, work, &lwork,
             &info );
@@ -81,10 +83,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggrqf( fortran_int_t m, fortran_int_t p, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* taua,
- std::complex<float>* b, fortran_int_t ldb, std::complex<float>* taub,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggrqf( const fortran_int_t m, const fortran_int_t p,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* taua,
+ std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* taub, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGGRQF( &m, &p, &n, a, &lda, taua, b, &ldb, taub, work, &lwork,
             &info );
@@ -96,11 +100,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggrqf( fortran_int_t m, fortran_int_t p, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* taua, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* taub,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggrqf( const fortran_int_t m, const fortran_int_t p,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* taua,
+ std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* taub, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGRQF( &m, &p, &n, a, &lda, taua, b, &ldb, taub, work, &lwork,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ggsvp.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,12 +52,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggsvp( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t p, fortran_int_t n, float* a, fortran_int_t lda,
- float* b, fortran_int_t ldb, float tola, float tolb, fortran_int_t& k,
- fortran_int_t& l, float* u, fortran_int_t ldu, float* v,
- fortran_int_t ldv, float* q, fortran_int_t ldq, fortran_int_t* iwork,
- float* tau, float* work ) {
+inline std::ptrdiff_t ggsvp( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t p, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* b, const fortran_int_t ldb,
+ const float tola, const float tolb, fortran_int_t& k,
+ fortran_int_t& l, float* u, const fortran_int_t ldu, float* v,
+ const fortran_int_t ldv, float* q, const fortran_int_t ldq,
+ fortran_int_t* iwork, float* tau, float* work ) {
     fortran_int_t info(0);
     LAPACK_SGGSVP( &jobu, &jobv, &jobq, &m, &p, &n, a, &lda, b, &ldb, &tola,
             &tolb, &k, &l, u, &ldu, v, &ldv, q, &ldq, iwork, tau, work,
@@ -70,12 +71,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggsvp( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t p, fortran_int_t n, double* a, fortran_int_t lda,
- double* b, fortran_int_t ldb, double tola, double tolb,
- fortran_int_t& k, fortran_int_t& l, double* u, fortran_int_t ldu,
- double* v, fortran_int_t ldv, double* q, fortran_int_t ldq,
- fortran_int_t* iwork, double* tau, double* work ) {
+inline std::ptrdiff_t ggsvp( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t p, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, const double tola, const double tolb,
+ fortran_int_t& k, fortran_int_t& l, double* u,
+ const fortran_int_t ldu, double* v, const fortran_int_t ldv,
+ double* q, const fortran_int_t ldq, fortran_int_t* iwork, double* tau,
+ double* work ) {
     fortran_int_t info(0);
     LAPACK_DGGSVP( &jobu, &jobv, &jobq, &m, &p, &n, a, &lda, b, &ldb, &tola,
             &tolb, &k, &l, u, &ldu, v, &ldv, q, &ldq, iwork, tau, work,
@@ -88,14 +91,15 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggsvp( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t p, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, std::complex<float>* b, fortran_int_t ldb,
- float tola, float tolb, fortran_int_t& k, fortran_int_t& l,
- std::complex<float>* u, fortran_int_t ldu, std::complex<float>* v,
- fortran_int_t ldv, std::complex<float>* q, fortran_int_t ldq,
- fortran_int_t* iwork, float* rwork, std::complex<float>* tau,
- std::complex<float>* work ) {
+inline std::ptrdiff_t ggsvp( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t p, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* b, const fortran_int_t ldb, const float tola,
+ const float tolb, fortran_int_t& k, fortran_int_t& l,
+ std::complex<float>* u, const fortran_int_t ldu,
+ std::complex<float>* v, const fortran_int_t ldv,
+ std::complex<float>* q, const fortran_int_t ldq, fortran_int_t* iwork,
+ float* rwork, std::complex<float>* tau, std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CGGSVP( &jobu, &jobv, &jobq, &m, &p, &n, a, &lda, b, &ldb, &tola,
             &tolb, &k, &l, u, &ldu, v, &ldv, q, &ldq, iwork, rwork, tau, work,
@@ -108,12 +112,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggsvp( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t p, fortran_int_t n, std::complex<double>* a,
- fortran_int_t lda, std::complex<double>* b, fortran_int_t ldb,
- double tola, double tolb, fortran_int_t& k, fortran_int_t& l,
- std::complex<double>* u, fortran_int_t ldu, std::complex<double>* v,
- fortran_int_t ldv, std::complex<double>* q, fortran_int_t ldq,
+inline std::ptrdiff_t ggsvp( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t p, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb, const double tola,
+ const double tolb, fortran_int_t& k, fortran_int_t& l,
+ std::complex<double>* u, const fortran_int_t ldu,
+ std::complex<double>* v, const fortran_int_t ldv,
+ std::complex<double>* q, const fortran_int_t ldq,
         fortran_int_t* iwork, double* rwork, std::complex<double>* tau,
         std::complex<double>* work ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gtrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gtrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gtrfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,12 +54,12 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gtrfs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const float* dl, const float* d, const float* du, const float* dlf,
- const float* df, const float* duf, const float* du2,
- const fortran_int_t* ipiv, const float* b, fortran_int_t ldb,
- float* x, fortran_int_t ldx, float* ferr, float* berr, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t gtrfs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* dl, const float* d,
+ const float* du, const float* dlf, const float* df, const float* duf,
+ const float* du2, const fortran_int_t* ipiv, const float* b,
+ const fortran_int_t ldb, float* x, const fortran_int_t ldx,
+ float* ferr, float* berr, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGTRFS( &lapack_option< Trans >::value, &n, &nrhs, dl, d, du, dlf,
             df, duf, du2, ipiv, b, &ldb, x, &ldx, ferr, berr, work, iwork,
@@ -73,12 +73,13 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gtrfs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const double* dl, const double* d, const double* du,
- const double* dlf, const double* df, const double* duf,
- const double* du2, const fortran_int_t* ipiv, const double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double* ferr,
- double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gtrfs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* dl, const double* d,
+ const double* du, const double* dlf, const double* df,
+ const double* duf, const double* du2, const fortran_int_t* ipiv,
+ const double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double* ferr, double* berr, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGTRFS( &lapack_option< Trans >::value, &n, &nrhs, dl, d, du, dlf,
             df, duf, du2, ipiv, b, &ldb, x, &ldx, ferr, berr, work, iwork,
@@ -92,13 +93,14 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gtrfs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* dl, const std::complex<float>* d,
- const std::complex<float>* du, const std::complex<float>* dlf,
- const std::complex<float>* df, const std::complex<float>* duf,
- const std::complex<float>* du2, const fortran_int_t* ipiv,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float* ferr, float* berr,
+inline std::ptrdiff_t gtrfs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* dl,
+ const std::complex<float>* d, const std::complex<float>* du,
+ const std::complex<float>* dlf, const std::complex<float>* df,
+ const std::complex<float>* duf, const std::complex<float>* du2,
+ const fortran_int_t* ipiv, const std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* x,
+ const fortran_int_t ldx, float* ferr, float* berr,
         std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGTRFS( &lapack_option< Trans >::value, &n, &nrhs, dl, d, du, dlf,
@@ -113,14 +115,15 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gtrfs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* dl, const std::complex<double>* d,
- const std::complex<double>* du, const std::complex<double>* dlf,
- const std::complex<double>* df, const std::complex<double>* duf,
- const std::complex<double>* du2, const fortran_int_t* ipiv,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double* ferr,
- double* berr, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t gtrfs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* dl,
+ const std::complex<double>* d, const std::complex<double>* du,
+ const std::complex<double>* dlf, const std::complex<double>* df,
+ const std::complex<double>* duf, const std::complex<double>* du2,
+ const fortran_int_t* ipiv, const std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* x,
+ const fortran_int_t ldx, double* ferr, double* berr,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGTRFS( &lapack_option< Trans >::value, &n, &nrhs, dl, d, du, dlf,
             df, duf, du2, ipiv, b, &ldb, x, &ldx, ferr, berr, work, rwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gttrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gttrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/gttrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,9 +49,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gttrs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const float* dl, const float* d, const float* du, const float* du2,
- const fortran_int_t* ipiv, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t gttrs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* dl, const float* d,
+ const float* du, const float* du2, const fortran_int_t* ipiv,
+ float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SGTTRS( &lapack_option< Trans >::value, &n, &nrhs, dl, d, du, du2,
             ipiv, b, &ldb, &info );
@@ -64,10 +65,10 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gttrs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const double* dl, const double* d, const double* du,
- const double* du2, const fortran_int_t* ipiv, double* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gttrs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* dl, const double* d,
+ const double* du, const double* du2, const fortran_int_t* ipiv,
+ double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DGTTRS( &lapack_option< Trans >::value, &n, &nrhs, dl, d, du, du2,
             ipiv, b, &ldb, &info );
@@ -80,11 +81,11 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gttrs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* dl, const std::complex<float>* d,
- const std::complex<float>* du, const std::complex<float>* du2,
- const fortran_int_t* ipiv, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gttrs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* dl,
+ const std::complex<float>* d, const std::complex<float>* du,
+ const std::complex<float>* du2, const fortran_int_t* ipiv,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CGTTRS( &lapack_option< Trans >::value, &n, &nrhs, dl, d, du, du2,
             ipiv, b, &ldb, &info );
@@ -97,11 +98,11 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gttrs( Trans, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* dl, const std::complex<double>* d,
- const std::complex<double>* du, const std::complex<double>* du2,
- const fortran_int_t* ipiv, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gttrs( Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* dl,
+ const std::complex<double>* d, const std::complex<double>* du,
+ const std::complex<double>* du2, const fortran_int_t* ipiv,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZGTTRS( &lapack_option< Trans >::value, &n, &nrhs, dl, d, du, du2,
             ipiv, b, &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbgst.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbgst.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbgst.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,11 +51,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbgst( char vect, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, std::complex<float>* ab,
- fortran_int_t ldab, const std::complex<float>* bb, fortran_int_t ldbb,
- std::complex<float>* x, fortran_int_t ldx, std::complex<float>* work,
- float* rwork ) {
+inline std::ptrdiff_t hbgst( const char vect, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ const std::complex<float>* bb, const fortran_int_t ldbb,
+ std::complex<float>* x, const fortran_int_t ldx,
+ std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHBGST( &vect, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, x, &ldx, work, rwork, &info );
@@ -68,10 +69,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbgst( char vect, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, std::complex<double>* ab,
- fortran_int_t ldab, const std::complex<double>* bb,
- fortran_int_t ldbb, std::complex<double>* x, fortran_int_t ldx,
+inline std::ptrdiff_t hbgst( const char vect, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ const std::complex<double>* bb, const fortran_int_t ldbb,
+ std::complex<double>* x, const fortran_int_t ldx,
         std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHBGST( &vect, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbtrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbtrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hbtrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,10 +51,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbtrd( char vect, UpLo, fortran_int_t n,
- fortran_int_t kd, std::complex<float>* ab, fortran_int_t ldab,
- float* d, float* e, std::complex<float>* q, fortran_int_t ldq,
- std::complex<float>* work ) {
+inline std::ptrdiff_t hbtrd( const char vect, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<float>* ab,
+ const fortran_int_t ldab, float* d, float* e, std::complex<float>* q,
+ const fortran_int_t ldq, std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CHBTRD( &vect, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab,
             d, e, q, &ldq, work, &info );
@@ -67,9 +67,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbtrd( char vect, UpLo, fortran_int_t n,
- fortran_int_t kd, std::complex<double>* ab, fortran_int_t ldab,
- double* d, double* e, std::complex<double>* q, fortran_int_t ldq,
+inline std::ptrdiff_t hbtrd( const char vect, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<double>* ab,
+ const fortran_int_t ldab, double* d, double* e,
+ std::complex<double>* q, const fortran_int_t ldq,
         std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZHBTRD( &vect, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hecon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hecon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hecon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t hecon( char uplo, fortran_int_t n,
- const std::complex<float>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, float anorm, float& rcond,
+inline std::ptrdiff_t hecon( const char uplo, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, const float anorm, float& rcond,
         std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CHECON( &uplo, &n, a, &lda, ipiv, &anorm, &rcond, work, &info );
@@ -64,9 +64,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t hecon( char uplo, fortran_int_t n,
- const std::complex<double>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, double anorm, double& rcond,
+inline std::ptrdiff_t hecon( const char uplo, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, const double anorm, double& rcond,
         std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZHECON( &uplo, &n, a, &lda, ipiv, &anorm, &rcond, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hegst.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hegst.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hegst.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,9 +49,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hegst( fortran_int_t itype, UpLo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t hegst( const fortran_int_t itype, UpLo,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CHEGST( &itype, &lapack_option< UpLo >::value, &n, a, &lda, b,
             &ldb, &info );
@@ -64,9 +65,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hegst( fortran_int_t itype, UpLo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t hegst( const fortran_int_t itype, UpLo,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZHEGST( &itype, &lapack_option< UpLo >::value, &n, a, &lda, b,
             &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/herfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/herfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/herfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,12 +51,13 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t herfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* af, fortran_int_t ldaf,
- const fortran_int_t* ipiv, const std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* x, fortran_int_t ldx,
- float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t herfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* af,
+ const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float* ferr,
+ float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHERFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, rwork, &info );
@@ -69,13 +70,13 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t herfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* af, fortran_int_t ldaf,
- const fortran_int_t* ipiv, const std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double* ferr, double* berr, std::complex<double>* work,
- double* rwork ) {
+inline std::ptrdiff_t herfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* af,
+ const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double* ferr,
+ double* berr, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHERFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hetrd( UpLo, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, float* d, float* e, std::complex<float>* tau,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t hetrd( UpLo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, float* d, float* e,
+ std::complex<float>* tau, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CHETRD( &lapack_option< UpLo >::value, &n, a, &lda, d, e, tau,
             work, &lwork, &info );
@@ -67,9 +68,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hetrd( UpLo, fortran_int_t n, std::complex<double>* a,
- fortran_int_t lda, double* d, double* e, std::complex<double>* tau,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t hetrd( UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, double* d,
+ double* e, std::complex<double>* tau, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZHETRD( &lapack_option< UpLo >::value, &n, a, &lda, d, e, tau,
             work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hetrf( UpLo, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, fortran_int_t* ipiv, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t hetrf( UpLo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, fortran_int_t* ipiv,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CHETRF( &lapack_option< UpLo >::value, &n, a, &lda, ipiv, work,
             &lwork, &info );
@@ -66,9 +66,9 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hetrf( UpLo, fortran_int_t n, std::complex<double>* a,
- fortran_int_t lda, fortran_int_t* ipiv, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t hetrf( UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, fortran_int_t* ipiv,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZHETRF( &lapack_option< UpLo >::value, &n, a, &lda, ipiv, work,
             &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetri.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetri.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetri.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t hetri( char uplo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, const fortran_int_t* ipiv,
- std::complex<float>* work ) {
+inline std::ptrdiff_t hetri( const char uplo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CHETRI( &uplo, &n, a, &lda, ipiv, work, &info );
     return info;
@@ -63,9 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t hetri( char uplo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, const fortran_int_t* ipiv,
- std::complex<double>* work ) {
+inline std::ptrdiff_t hetri( const char uplo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZHETRI( &uplo, &n, a, &lda, ipiv, work, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hetrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -48,10 +48,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t hetrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t hetrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CHETRS( &uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
     return info;
@@ -62,10 +62,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t hetrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t hetrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZHETRS( &uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hgeqz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hgeqz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hgeqz.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,11 +53,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t hgeqz( char job, char compq, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, float* h, fortran_int_t ldh,
- float* t, fortran_int_t ldt, float* alphar, float* alphai,
- float* beta, float* q, fortran_int_t ldq, float* z, fortran_int_t ldz,
- float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t hgeqz( const char job, const char compq,
+ const char compz, const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, float* h, const fortran_int_t ldh, float* t,
+ const fortran_int_t ldt, float* alphar, float* alphai, float* beta,
+ float* q, const fortran_int_t ldq, float* z, const fortran_int_t ldz,
+ float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SHGEQZ( &job, &compq, &compz, &n, &ilo, &ihi, h, &ldh, t, &ldt,
             alphar, alphai, beta, q, &ldq, z, &ldz, work, &lwork, &info );
@@ -69,11 +70,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t hgeqz( char job, char compq, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, double* h, fortran_int_t ldh,
- double* t, fortran_int_t ldt, double* alphar, double* alphai,
- double* beta, double* q, fortran_int_t ldq, double* z,
- fortran_int_t ldz, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t hgeqz( const char job, const char compq,
+ const char compz, const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, double* h, const fortran_int_t ldh,
+ double* t, const fortran_int_t ldt, double* alphar, double* alphai,
+ double* beta, double* q, const fortran_int_t ldq, double* z,
+ const fortran_int_t ldz, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DHGEQZ( &job, &compq, &compz, &n, &ilo, &ihi, h, &ldh, t, &ldt,
             alphar, alphai, beta, q, &ldq, z, &ldz, work, &lwork, &info );
@@ -85,13 +87,15 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t hgeqz( char job, char compq, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, std::complex<float>* h,
- fortran_int_t ldh, std::complex<float>* t, fortran_int_t ldt,
- std::complex<float>* alpha, std::complex<float>* beta,
- std::complex<float>* q, fortran_int_t ldq, std::complex<float>* z,
- fortran_int_t ldz, std::complex<float>* work, fortran_int_t lwork,
- float* rwork ) {
+inline std::ptrdiff_t hgeqz( const char job, const char compq,
+ const char compz, const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<float>* h,
+ const fortran_int_t ldh, std::complex<float>* t,
+ const fortran_int_t ldt, std::complex<float>* alpha,
+ std::complex<float>* beta, std::complex<float>* q,
+ const fortran_int_t ldq, std::complex<float>* z,
+ const fortran_int_t ldz, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHGEQZ( &job, &compq, &compz, &n, &ilo, &ihi, h, &ldh, t, &ldt,
             alpha, beta, q, &ldq, z, &ldz, work, &lwork, rwork, &info );
@@ -103,13 +107,15 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t hgeqz( char job, char compq, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, std::complex<double>* h,
- fortran_int_t ldh, std::complex<double>* t, fortran_int_t ldt,
- std::complex<double>* alpha, std::complex<double>* beta,
- std::complex<double>* q, fortran_int_t ldq, std::complex<double>* z,
- fortran_int_t ldz, std::complex<double>* work, fortran_int_t lwork,
- double* rwork ) {
+inline std::ptrdiff_t hgeqz( const char job, const char compq,
+ const char compz, const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<double>* h,
+ const fortran_int_t ldh, std::complex<double>* t,
+ const fortran_int_t ldt, std::complex<double>* alpha,
+ std::complex<double>* beta, std::complex<double>* q,
+ const fortran_int_t ldq, std::complex<double>* z,
+ const fortran_int_t ldz, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHGEQZ( &job, &compq, &compz, &n, &ilo, &ihi, h, &ldh, t, &ldt,
             alpha, beta, q, &ldq, z, &ldz, work, &lwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hprfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hprfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hprfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,11 +51,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* ap, const std::complex<float>* afp,
- const fortran_int_t* ipiv, const std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* x, fortran_int_t ldx,
- float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t hprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* ap,
+ const std::complex<float>* afp, const fortran_int_t* ipiv,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float* ferr,
+ float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, ipiv, b,
             &ldb, x, &ldx, ferr, berr, work, rwork, &info );
@@ -68,12 +69,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* ap, const std::complex<double>* afp,
- const fortran_int_t* ipiv, const std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double* ferr, double* berr, std::complex<double>* work,
- double* rwork ) {
+inline std::ptrdiff_t hprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* ap,
+ const std::complex<double>* afp, const fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double* ferr,
+ double* berr, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, ipiv, b,
             &ldb, x, &ldx, ferr, berr, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hptrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hptrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hptrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,8 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hptrf( UpLo, fortran_int_t n, std::complex<float>* ap,
- fortran_int_t* ipiv ) {
+inline std::ptrdiff_t hptrf( UpLo, const fortran_int_t n,
+ std::complex<float>* ap, fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_CHPTRF( &lapack_option< UpLo >::value, &n, ap, ipiv, &info );
     return info;
@@ -62,8 +62,8 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hptrf( UpLo, fortran_int_t n, std::complex<double>* ap,
- fortran_int_t* ipiv ) {
+inline std::ptrdiff_t hptrf( UpLo, const fortran_int_t n,
+ std::complex<double>* ap, fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_ZHPTRF( &lapack_option< UpLo >::value, &n, ap, ipiv, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hptrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hptrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hptrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -48,9 +48,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t hptrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* ap, const fortran_int_t* ipiv,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t hptrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* ap,
+ const fortran_int_t* ipiv, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CHPTRS( &uplo, &n, &nrhs, ap, ipiv, b, &ldb, &info );
     return info;
@@ -61,9 +62,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t hptrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* ap, const fortran_int_t* ipiv,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t hptrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* ap,
+ const fortran_int_t* ipiv, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZHPTRS( &uplo, &n, &nrhs, ap, ipiv, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hsein.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hsein.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hsein.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t hsein( char side, char eigsrc, char initv,
- logical_t* select, fortran_int_t n, const float* h, fortran_int_t ldh,
- float* wr, const float* wi, float* vl, fortran_int_t ldvl, float* vr,
- fortran_int_t ldvr, fortran_int_t mm, fortran_int_t& m, float* work,
- fortran_int_t* ifaill, fortran_int_t* ifailr ) {
+inline std::ptrdiff_t hsein( const char side, const char eigsrc,
+ const char initv, logical_t* select, const fortran_int_t n,
+ const float* h, const fortran_int_t ldh, float* wr, const float* wi,
+ float* vl, const fortran_int_t ldvl, float* vr,
+ const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
+ float* work, fortran_int_t* ifaill, fortran_int_t* ifailr ) {
     fortran_int_t info(0);
     LAPACK_SHSEIN( &side, &eigsrc, &initv, select, &n, h, &ldh, wr, wi, vl,
             &ldvl, vr, &ldvr, &mm, &m, work, ifaill, ifailr, &info );
@@ -68,12 +69,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t hsein( char side, char eigsrc, char initv,
- logical_t* select, fortran_int_t n, const double* h,
- fortran_int_t ldh, double* wr, const double* wi, double* vl,
- fortran_int_t ldvl, double* vr, fortran_int_t ldvr, fortran_int_t mm,
- fortran_int_t& m, double* work, fortran_int_t* ifaill,
- fortran_int_t* ifailr ) {
+inline std::ptrdiff_t hsein( const char side, const char eigsrc,
+ const char initv, logical_t* select, const fortran_int_t n,
+ const double* h, const fortran_int_t ldh, double* wr,
+ const double* wi, double* vl, const fortran_int_t ldvl, double* vr,
+ const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
+ double* work, fortran_int_t* ifaill, fortran_int_t* ifailr ) {
     fortran_int_t info(0);
     LAPACK_DHSEIN( &side, &eigsrc, &initv, select, &n, h, &ldh, wr, wi, vl,
             &ldvl, vr, &ldvr, &mm, &m, work, ifaill, ifailr, &info );
@@ -85,13 +86,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t hsein( char side, char eigsrc, char initv,
- const logical_t* select, fortran_int_t n,
- const std::complex<float>* h, fortran_int_t ldh,
- std::complex<float>* w, std::complex<float>* vl, fortran_int_t ldvl,
- std::complex<float>* vr, fortran_int_t ldvr, fortran_int_t mm,
- fortran_int_t& m, std::complex<float>* work, float* rwork,
- fortran_int_t* ifaill, fortran_int_t* ifailr ) {
+inline std::ptrdiff_t hsein( const char side, const char eigsrc,
+ const char initv, const logical_t* select, const fortran_int_t n,
+ const std::complex<float>* h, const fortran_int_t ldh,
+ std::complex<float>* w, std::complex<float>* vl,
+ const fortran_int_t ldvl, std::complex<float>* vr,
+ const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
+ std::complex<float>* work, float* rwork, fortran_int_t* ifaill,
+ fortran_int_t* ifailr ) {
     fortran_int_t info(0);
     LAPACK_CHSEIN( &side, &eigsrc, &initv, select, &n, h, &ldh, w, vl, &ldvl,
             vr, &ldvr, &mm, &m, work, rwork, ifaill, ifailr, &info );
@@ -103,13 +105,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t hsein( char side, char eigsrc, char initv,
- const logical_t* select, fortran_int_t n,
- const std::complex<double>* h, fortran_int_t ldh,
- std::complex<double>* w, std::complex<double>* vl, fortran_int_t ldvl,
- std::complex<double>* vr, fortran_int_t ldvr, fortran_int_t mm,
- fortran_int_t& m, std::complex<double>* work, double* rwork,
- fortran_int_t* ifaill, fortran_int_t* ifailr ) {
+inline std::ptrdiff_t hsein( const char side, const char eigsrc,
+ const char initv, const logical_t* select, const fortran_int_t n,
+ const std::complex<double>* h, const fortran_int_t ldh,
+ std::complex<double>* w, std::complex<double>* vl,
+ const fortran_int_t ldvl, std::complex<double>* vr,
+ const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
+ std::complex<double>* work, double* rwork, fortran_int_t* ifaill,
+ fortran_int_t* ifailr ) {
     fortran_int_t info(0);
     LAPACK_ZHSEIN( &side, &eigsrc, &initv, select, &n, h, &ldh, w, vl, &ldvl,
             vr, &ldvr, &mm, &m, work, rwork, ifaill, ifailr, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hseqr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hseqr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/hseqr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t hseqr( char job, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, float* h, fortran_int_t ldh,
- float* wr, float* wi, float* z, fortran_int_t ldz, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t hseqr( const char job, const char compz,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, float* h, const fortran_int_t ldh, float* wr,
+ float* wi, float* z, const fortran_int_t ldz, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SHSEQR( &job, &compz, &n, &ilo, &ihi, h, &ldh, wr, wi, z, &ldz,
             work, &lwork, &info );
@@ -67,10 +68,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t hseqr( char job, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, double* h, fortran_int_t ldh,
- double* wr, double* wi, double* z, fortran_int_t ldz, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t hseqr( const char job, const char compz,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, double* h, const fortran_int_t ldh,
+ double* wr, double* wi, double* z, const fortran_int_t ldz,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DHSEQR( &job, &compz, &n, &ilo, &ihi, h, &ldh, wr, wi, z, &ldz,
             work, &lwork, &info );
@@ -82,10 +84,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t hseqr( char job, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, std::complex<float>* h,
- fortran_int_t ldh, std::complex<float>* w, std::complex<float>* z,
- fortran_int_t ldz, std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t hseqr( const char job, const char compz,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<float>* h,
+ const fortran_int_t ldh, std::complex<float>* w,
+ std::complex<float>* z, const fortran_int_t ldz,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CHSEQR( &job, &compz, &n, &ilo, &ihi, h, &ldh, w, z, &ldz, work,
             &lwork, &info );
@@ -97,10 +101,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t hseqr( char job, char compz, fortran_int_t n,
- fortran_int_t ilo, fortran_int_t ihi, std::complex<double>* h,
- fortran_int_t ldh, std::complex<double>* w, std::complex<double>* z,
- fortran_int_t ldz, std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t hseqr( const char job, const char compz,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<double>* h,
+ const fortran_int_t ldh, std::complex<double>* w,
+ std::complex<double>* z, const fortran_int_t ldz,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZHSEQR( &job, &compz, &n, &ilo, &ihi, h, &ldh, w, z, &ldz, work,
             &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/labrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/labrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/labrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t labrd( fortran_int_t m, fortran_int_t n,
- fortran_int_t nb, float* a, fortran_int_t lda, float* d, float* e,
- float* tauq, float* taup, float* x, fortran_int_t ldx, float* y,
- fortran_int_t ldy ) {
+inline std::ptrdiff_t labrd( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nb, float* a, const fortran_int_t lda, float* d,
+ float* e, float* tauq, float* taup, float* x, const fortran_int_t ldx,
+ float* y, const fortran_int_t ldy ) {
     fortran_int_t info(0);
     LAPACK_SLABRD( &m, &n, &nb, a, &lda, d, e, tauq, taup, x, &ldx, y, &ldy );
     return info;
@@ -64,10 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t labrd( fortran_int_t m, fortran_int_t n,
- fortran_int_t nb, double* a, fortran_int_t lda, double* d, double* e,
- double* tauq, double* taup, double* x, fortran_int_t ldx, double* y,
- fortran_int_t ldy ) {
+inline std::ptrdiff_t labrd( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nb, double* a, const fortran_int_t lda, double* d,
+ double* e, double* tauq, double* taup, double* x,
+ const fortran_int_t ldx, double* y, const fortran_int_t ldy ) {
     fortran_int_t info(0);
     LAPACK_DLABRD( &m, &n, &nb, a, &lda, d, e, tauq, taup, x, &ldx, y, &ldy );
     return info;
@@ -78,11 +78,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t labrd( fortran_int_t m, fortran_int_t n,
- fortran_int_t nb, std::complex<float>* a, fortran_int_t lda, float* d,
- float* e, std::complex<float>* tauq, std::complex<float>* taup,
- std::complex<float>* x, fortran_int_t ldx, std::complex<float>* y,
- fortran_int_t ldy ) {
+inline std::ptrdiff_t labrd( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nb, std::complex<float>* a,
+ const fortran_int_t lda, float* d, float* e,
+ std::complex<float>* tauq, std::complex<float>* taup,
+ std::complex<float>* x, const fortran_int_t ldx,
+ std::complex<float>* y, const fortran_int_t ldy ) {
     fortran_int_t info(0);
     LAPACK_CLABRD( &m, &n, &nb, a, &lda, d, e, tauq, taup, x, &ldx, y, &ldy );
     return info;
@@ -93,11 +94,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t labrd( fortran_int_t m, fortran_int_t n,
- fortran_int_t nb, std::complex<double>* a, fortran_int_t lda,
- double* d, double* e, std::complex<double>* tauq,
- std::complex<double>* taup, std::complex<double>* x,
- fortran_int_t ldx, std::complex<double>* y, fortran_int_t ldy ) {
+inline std::ptrdiff_t labrd( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nb, std::complex<double>* a,
+ const fortran_int_t lda, double* d, double* e,
+ std::complex<double>* tauq, std::complex<double>* taup,
+ std::complex<double>* x, const fortran_int_t ldx,
+ std::complex<double>* y, const fortran_int_t ldy ) {
     fortran_int_t info(0);
     LAPACK_ZLABRD( &m, &n, &nb, a, &lda, d, e, tauq, taup, x, &ldx, y, &ldy );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/lacon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/lacon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/lacon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,7 +52,7 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t lacon( fortran_int_t n, float* v, float* x,
+inline std::ptrdiff_t lacon( const fortran_int_t n, float* v, float* x,
         fortran_int_t* isgn, float& est, fortran_int_t& kase ) {
     fortran_int_t info(0);
     LAPACK_SLACON( &n, v, x, isgn, &est, &kase );
@@ -64,7 +64,7 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t lacon( fortran_int_t n, double* v, double* x,
+inline std::ptrdiff_t lacon( const fortran_int_t n, double* v, double* x,
         fortran_int_t* isgn, double& est, fortran_int_t& kase ) {
     fortran_int_t info(0);
     LAPACK_DLACON( &n, v, x, isgn, &est, &kase );
@@ -76,7 +76,7 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t lacon( fortran_int_t n, std::complex<float>* v,
+inline std::ptrdiff_t lacon( const fortran_int_t n, std::complex<float>* v,
         std::complex<float>* x, float& est, fortran_int_t& kase ) {
     fortran_int_t info(0);
     LAPACK_CLACON( &n, v, x, &est, &kase );
@@ -88,7 +88,7 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t lacon( fortran_int_t n, std::complex<double>* v,
+inline std::ptrdiff_t lacon( const fortran_int_t n, std::complex<double>* v,
         std::complex<double>* x, double& est, fortran_int_t& kase ) {
     fortran_int_t info(0);
     LAPACK_ZLACON( &n, v, x, &est, &kase );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/laebz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/laebz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/laebz.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,12 +49,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t laebz( fortran_int_t ijob, fortran_int_t nitmax,
- fortran_int_t n, fortran_int_t mmax, fortran_int_t minp,
- fortran_int_t nbmin, float abstol, float reltol, float pivmin,
- const float* d, const float* e, const float* e2, fortran_int_t* nval,
- float* ab, float* c, fortran_int_t& mout, fortran_int_t* nab,
- float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t laebz( const fortran_int_t ijob,
+ const fortran_int_t nitmax, const fortran_int_t n,
+ const fortran_int_t mmax, const fortran_int_t minp,
+ const fortran_int_t nbmin, const float abstol, const float reltol,
+ const float pivmin, const float* d, const float* e, const float* e2,
+ fortran_int_t* nval, float* ab, float* c, fortran_int_t& mout,
+ fortran_int_t* nab, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SLAEBZ( &ijob, &nitmax, &n, &mmax, &minp, &nbmin, &abstol, &reltol,
             &pivmin, d, e, e2, nval, ab, c, &mout, nab, work, iwork, &info );
@@ -66,12 +67,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t laebz( fortran_int_t ijob, fortran_int_t nitmax,
- fortran_int_t n, fortran_int_t mmax, fortran_int_t minp,
- fortran_int_t nbmin, double abstol, double reltol, double pivmin,
- const double* d, const double* e, const double* e2,
- fortran_int_t* nval, double* ab, double* c, fortran_int_t& mout,
- fortran_int_t* nab, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t laebz( const fortran_int_t ijob,
+ const fortran_int_t nitmax, const fortran_int_t n,
+ const fortran_int_t mmax, const fortran_int_t minp,
+ const fortran_int_t nbmin, const double abstol, const double reltol,
+ const double pivmin, const double* d, const double* e,
+ const double* e2, fortran_int_t* nval, double* ab, double* c,
+ fortran_int_t& mout, fortran_int_t* nab, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DLAEBZ( &ijob, &nitmax, &n, &mmax, &minp, &nbmin, &abstol, &reltol,
             &pivmin, d, e, e2, nval, ab, c, &mout, nab, work, iwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/larz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/larz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/larz.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t larz( char side, fortran_int_t m, fortran_int_t n,
- fortran_int_t l, const float* v, fortran_int_t incv, float tau,
- float* c, fortran_int_t ldc, float* work ) {
+inline std::ptrdiff_t larz( const char side, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t l, const float* v,
+ const fortran_int_t incv, const float tau, float* c,
+ const fortran_int_t ldc, float* work ) {
     fortran_int_t info(0);
     LAPACK_SLARZ( &side, &m, &n, &l, v, &incv, &tau, c, &ldc, work );
     return info;
@@ -65,9 +66,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t larz( char side, fortran_int_t m, fortran_int_t n,
- fortran_int_t l, const double* v, fortran_int_t incv, double tau,
- double* c, fortran_int_t ldc, double* work ) {
+inline std::ptrdiff_t larz( const char side, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t l, const double* v,
+ const fortran_int_t incv, const double tau, double* c,
+ const fortran_int_t ldc, double* work ) {
     fortran_int_t info(0);
     LAPACK_DLARZ( &side, &m, &n, &l, v, &incv, &tau, c, &ldc, work );
     return info;
@@ -78,10 +80,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t larz( char side, fortran_int_t m, fortran_int_t n,
- fortran_int_t l, const std::complex<float>* v, fortran_int_t incv,
- std::complex<float> tau, std::complex<float>* c, fortran_int_t ldc,
- std::complex<float>* work ) {
+inline std::ptrdiff_t larz( const char side, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t l,
+ const std::complex<float>* v, const fortran_int_t incv,
+ const std::complex<float> tau, std::complex<float>* c,
+ const fortran_int_t ldc, std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CLARZ( &side, &m, &n, &l, v, &incv, &tau, c, &ldc, work );
     return info;
@@ -92,10 +95,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t larz( char side, fortran_int_t m, fortran_int_t n,
- fortran_int_t l, const std::complex<double>* v, fortran_int_t incv,
- std::complex<double> tau, std::complex<double>* c, fortran_int_t ldc,
- std::complex<double>* work ) {
+inline std::ptrdiff_t larz( const char side, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t l,
+ const std::complex<double>* v, const fortran_int_t incv,
+ const std::complex<double> tau, std::complex<double>* c,
+ const fortran_int_t ldc, std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZLARZ( &side, &m, &n, &l, v, &incv, &tau, c, &ldc, work );
     return info;
@@ -127,9 +131,8 @@
     //
     template< typename VectorV, typename MatrixC, typename WORK >
     static std::ptrdiff_t invoke( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const real_type tau, MatrixC& c, detail::workspace1<
- WORK > work ) {
+ const VectorV& v, const real_type tau, MatrixC& c,
+ detail::workspace1< WORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorV >::type >::type,
                 typename remove_const< typename value<
@@ -142,8 +145,8 @@
         BOOST_ASSERT( stride_major(c) >= std::max< std::ptrdiff_t >(1,
                 size_row(c)) );
         return detail::larz( side, size_row(c), size_column(c), l,
- begin_value(v), incv, tau, begin_value(c), stride_major(c),
- begin_value(work.select(real_type())) );
+ begin_value(v), stride(v), tau, begin_value(c),
+ stride_major(c), begin_value(work.select(real_type())) );
     }
 
     //
@@ -155,11 +158,11 @@
     //
     template< typename VectorV, typename MatrixC >
     static std::ptrdiff_t invoke( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const real_type tau, MatrixC& c, minimal_workspace work ) {
+ const VectorV& v, const real_type tau, MatrixC& c,
+ minimal_workspace work ) {
         bindings::detail::array< real_type > tmp_work( min_size_work( side,
                 size_row(c), size_column(c) ) );
- return invoke( side, l, v, incv, tau, c, workspace( tmp_work ) );
+ return invoke( side, l, v, tau, c, workspace( tmp_work ) );
     }
 
     //
@@ -171,9 +174,9 @@
     //
     template< typename VectorV, typename MatrixC >
     static std::ptrdiff_t invoke( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const real_type tau, MatrixC& c, optimal_workspace work ) {
- return invoke( side, l, v, incv, tau, c, minimal_workspace() );
+ const VectorV& v, const real_type tau, MatrixC& c,
+ optimal_workspace work ) {
+ return invoke( side, l, v, tau, c, minimal_workspace() );
     }
 
     //
@@ -206,9 +209,8 @@
     //
     template< typename VectorV, typename MatrixC, typename WORK >
     static std::ptrdiff_t invoke( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const value_type tau, MatrixC& c, detail::workspace1<
- WORK > work ) {
+ const VectorV& v, const value_type tau, MatrixC& c,
+ detail::workspace1< WORK > work ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorV >::type >::type,
                 typename remove_const< typename value<
@@ -221,8 +223,8 @@
         BOOST_ASSERT( stride_major(c) >= std::max< std::ptrdiff_t >(1,
                 size_row(c)) );
         return detail::larz( side, size_row(c), size_column(c), l,
- begin_value(v), incv, tau, begin_value(c), stride_major(c),
- begin_value(work.select(value_type())) );
+ begin_value(v), stride(v), tau, begin_value(c),
+ stride_major(c), begin_value(work.select(value_type())) );
     }
 
     //
@@ -234,11 +236,11 @@
     //
     template< typename VectorV, typename MatrixC >
     static std::ptrdiff_t invoke( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const value_type tau, MatrixC& c, minimal_workspace work ) {
+ const VectorV& v, const value_type tau, MatrixC& c,
+ minimal_workspace work ) {
         bindings::detail::array< value_type > tmp_work( min_size_work( side,
                 size_row(c), size_column(c) ) );
- return invoke( side, l, v, incv, tau, c, workspace( tmp_work ) );
+ return invoke( side, l, v, tau, c, workspace( tmp_work ) );
     }
 
     //
@@ -250,9 +252,9 @@
     //
     template< typename VectorV, typename MatrixC >
     static std::ptrdiff_t invoke( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const value_type tau, MatrixC& c, optimal_workspace work ) {
- return invoke( side, l, v, incv, tau, c, minimal_workspace() );
+ const VectorV& v, const value_type tau, MatrixC& c,
+ optimal_workspace work ) {
+ return invoke( side, l, v, tau, c, minimal_workspace() );
     }
 
     //
@@ -285,11 +287,10 @@
 //
 template< typename VectorV, typename MatrixC, typename Workspace >
 inline std::ptrdiff_t larz( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const typename remove_imaginary< typename value<
+ const VectorV& v, const typename remove_imaginary< typename value<
         VectorV >::type >::type tau, MatrixC& c, Workspace work ) {
     return larz_impl< typename value< VectorV >::type >::invoke( side,
- l, v, incv, tau, c, work );
+ l, v, tau, c, work );
 }
 
 //
@@ -299,11 +300,10 @@
 //
 template< typename VectorV, typename MatrixC >
 inline std::ptrdiff_t larz( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const typename remove_imaginary< typename value<
+ const VectorV& v, const typename remove_imaginary< typename value<
         VectorV >::type >::type tau, MatrixC& c ) {
     return larz_impl< typename value< VectorV >::type >::invoke( side,
- l, v, incv, tau, c, optimal_workspace() );
+ l, v, tau, c, optimal_workspace() );
 }
 
 //
@@ -313,11 +313,10 @@
 //
 template< typename VectorV, typename MatrixC, typename Workspace >
 inline std::ptrdiff_t larz( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const typename remove_imaginary< typename value<
+ const VectorV& v, const typename remove_imaginary< typename value<
         VectorV >::type >::type tau, const MatrixC& c, Workspace work ) {
     return larz_impl< typename value< VectorV >::type >::invoke( side,
- l, v, incv, tau, c, work );
+ l, v, tau, c, work );
 }
 
 //
@@ -327,11 +326,10 @@
 //
 template< typename VectorV, typename MatrixC >
 inline std::ptrdiff_t larz( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv,
- const typename remove_imaginary< typename value<
+ const VectorV& v, const typename remove_imaginary< typename value<
         VectorV >::type >::type tau, const MatrixC& c ) {
     return larz_impl< typename value< VectorV >::type >::invoke( side,
- l, v, incv, tau, c, optimal_workspace() );
+ l, v, tau, c, optimal_workspace() );
 }
 //
 // Overloaded function for larz. Its overload differs for
@@ -340,10 +338,10 @@
 //
 template< typename VectorV, typename MatrixC, typename Workspace >
 inline std::ptrdiff_t larz( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv, const typename value<
- VectorV >::type tau, MatrixC& c, Workspace work ) {
+ const VectorV& v, const typename value< VectorV >::type tau,
+ MatrixC& c, Workspace work ) {
     return larz_impl< typename value< VectorV >::type >::invoke( side,
- l, v, incv, tau, c, work );
+ l, v, tau, c, work );
 }
 
 //
@@ -353,10 +351,10 @@
 //
 template< typename VectorV, typename MatrixC >
 inline std::ptrdiff_t larz( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv, const typename value<
- VectorV >::type tau, MatrixC& c ) {
+ const VectorV& v, const typename value< VectorV >::type tau,
+ MatrixC& c ) {
     return larz_impl< typename value< VectorV >::type >::invoke( side,
- l, v, incv, tau, c, optimal_workspace() );
+ l, v, tau, c, optimal_workspace() );
 }
 
 //
@@ -366,10 +364,10 @@
 //
 template< typename VectorV, typename MatrixC, typename Workspace >
 inline std::ptrdiff_t larz( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv, const typename value<
- VectorV >::type tau, const MatrixC& c, Workspace work ) {
+ const VectorV& v, const typename value< VectorV >::type tau,
+ const MatrixC& c, Workspace work ) {
     return larz_impl< typename value< VectorV >::type >::invoke( side,
- l, v, incv, tau, c, work );
+ l, v, tau, c, work );
 }
 
 //
@@ -379,10 +377,10 @@
 //
 template< typename VectorV, typename MatrixC >
 inline std::ptrdiff_t larz( const char side, const fortran_int_t l,
- const VectorV& v, const fortran_int_t incv, const typename value<
- VectorV >::type tau, const MatrixC& c ) {
+ const VectorV& v, const typename value< VectorV >::type tau,
+ const MatrixC& c ) {
     return larz_impl< typename value< VectorV >::type >::invoke( side,
- l, v, incv, tau, c, optimal_workspace() );
+ l, v, tau, c, optimal_workspace() );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t latrd( UpLo, fortran_int_t n, fortran_int_t nb, float* a,
- fortran_int_t lda, float* e, float* tau, float* w,
- fortran_int_t ldw ) {
+inline std::ptrdiff_t latrd( UpLo, const fortran_int_t n,
+ const fortran_int_t nb, float* a, const fortran_int_t lda, float* e,
+ float* tau, float* w, const fortran_int_t ldw ) {
     fortran_int_t info(0);
     LAPACK_SLATRD( &lapack_option< UpLo >::value, &n, &nb, a, &lda, e, tau, w,
             &ldw );
@@ -67,9 +67,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t latrd( UpLo, fortran_int_t n, fortran_int_t nb,
- double* a, fortran_int_t lda, double* e, double* tau, double* w,
- fortran_int_t ldw ) {
+inline std::ptrdiff_t latrd( UpLo, const fortran_int_t n,
+ const fortran_int_t nb, double* a, const fortran_int_t lda, double* e,
+ double* tau, double* w, const fortran_int_t ldw ) {
     fortran_int_t info(0);
     LAPACK_DLATRD( &lapack_option< UpLo >::value, &n, &nb, a, &lda, e, tau, w,
             &ldw );
@@ -82,9 +82,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t latrd( UpLo, fortran_int_t n, fortran_int_t nb,
- std::complex<float>* a, fortran_int_t lda, float* e,
- std::complex<float>* tau, std::complex<float>* w, fortran_int_t ldw ) {
+inline std::ptrdiff_t latrd( UpLo, const fortran_int_t n,
+ const fortran_int_t nb, std::complex<float>* a,
+ const fortran_int_t lda, float* e, std::complex<float>* tau,
+ std::complex<float>* w, const fortran_int_t ldw ) {
     fortran_int_t info(0);
     LAPACK_CLATRD( &lapack_option< UpLo >::value, &n, &nb, a, &lda, e, tau, w,
             &ldw );
@@ -97,10 +98,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t latrd( UpLo, fortran_int_t n, fortran_int_t nb,
- std::complex<double>* a, fortran_int_t lda, double* e,
- std::complex<double>* tau, std::complex<double>* w,
- fortran_int_t ldw ) {
+inline std::ptrdiff_t latrd( UpLo, const fortran_int_t n,
+ const fortran_int_t nb, std::complex<double>* a,
+ const fortran_int_t lda, double* e, std::complex<double>* tau,
+ std::complex<double>* w, const fortran_int_t ldw ) {
     fortran_int_t info(0);
     LAPACK_ZLATRD( &lapack_option< UpLo >::value, &n, &nb, a, &lda, e, tau, w,
             &ldw );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,9 +54,9 @@
 // * float value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t latrs( char uplo, Trans, Diag, char normin,
- fortran_int_t n, const float* a, fortran_int_t lda, float* x,
- float& scale, float* cnorm ) {
+inline std::ptrdiff_t latrs( const char uplo, Trans, Diag, const char normin,
+ const fortran_int_t n, const float* a, const fortran_int_t lda,
+ float* x, float& scale, float* cnorm ) {
     fortran_int_t info(0);
     LAPACK_SLATRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &normin, &n, a, &lda, x, &scale, cnorm, &info );
@@ -69,9 +69,9 @@
 // * double value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t latrs( char uplo, Trans, Diag, char normin,
- fortran_int_t n, const double* a, fortran_int_t lda, double* x,
- double& scale, double* cnorm ) {
+inline std::ptrdiff_t latrs( const char uplo, Trans, Diag, const char normin,
+ const fortran_int_t n, const double* a, const fortran_int_t lda,
+ double* x, double& scale, double* cnorm ) {
     fortran_int_t info(0);
     LAPACK_DLATRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &normin, &n, a, &lda, x, &scale, cnorm, &info );
@@ -84,9 +84,10 @@
 // * complex<float> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t latrs( char uplo, Trans, Diag, char normin,
- fortran_int_t n, const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* x, float& scale, float* cnorm ) {
+inline std::ptrdiff_t latrs( const char uplo, Trans, Diag, const char normin,
+ const fortran_int_t n, const std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* x, float& scale,
+ float* cnorm ) {
     fortran_int_t info(0);
     LAPACK_CLATRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &normin, &n, a, &lda, x, &scale, cnorm, &info );
@@ -99,9 +100,10 @@
 // * complex<double> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t latrs( char uplo, Trans, Diag, char normin,
- fortran_int_t n, const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* x, double& scale, double* cnorm ) {
+inline std::ptrdiff_t latrs( const char uplo, Trans, Diag, const char normin,
+ const fortran_int_t n, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* x, double& scale,
+ double* cnorm ) {
     fortran_int_t info(0);
     LAPACK_ZLATRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &normin, &n, a, &lda, x, &scale, cnorm, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/latrz.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,8 +52,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t latrz( fortran_int_t m, fortran_int_t n, fortran_int_t l,
- float* a, fortran_int_t lda, float* tau, float* work ) {
+inline std::ptrdiff_t latrz( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t l, float* a, const fortran_int_t lda, float* tau,
+ float* work ) {
     fortran_int_t info(0);
     LAPACK_SLATRZ( &m, &n, &l, a, &lda, tau, work );
     return info;
@@ -64,8 +65,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t latrz( fortran_int_t m, fortran_int_t n, fortran_int_t l,
- double* a, fortran_int_t lda, double* tau, double* work ) {
+inline std::ptrdiff_t latrz( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t l, double* a, const fortran_int_t lda,
+ double* tau, double* work ) {
     fortran_int_t info(0);
     LAPACK_DLATRZ( &m, &n, &l, a, &lda, tau, work );
     return info;
@@ -76,8 +78,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t latrz( fortran_int_t m, fortran_int_t n, fortran_int_t l,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* tau,
+inline std::ptrdiff_t latrz( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t l, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* tau,
         std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CLATRZ( &m, &n, &l, a, &lda, tau, work );
@@ -89,8 +92,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t latrz( fortran_int_t m, fortran_int_t n, fortran_int_t l,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* tau,
+inline std::ptrdiff_t latrz( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t l, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* tau,
         std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZLATRZ( &m, &n, &l, a, &lda, tau, work );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/opgtr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/opgtr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/opgtr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,8 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t opgtr( char uplo, fortran_int_t n, const float* ap,
- const float* tau, float* q, fortran_int_t ldq, float* work ) {
+inline std::ptrdiff_t opgtr( const char uplo, const fortran_int_t n,
+ const float* ap, const float* tau, float* q, const fortran_int_t ldq,
+ float* work ) {
     fortran_int_t info(0);
     LAPACK_SOPGTR( &uplo, &n, ap, tau, q, &ldq, work, &info );
     return info;
@@ -62,8 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t opgtr( char uplo, fortran_int_t n, const double* ap,
- const double* tau, double* q, fortran_int_t ldq, double* work ) {
+inline std::ptrdiff_t opgtr( const char uplo, const fortran_int_t n,
+ const double* ap, const double* tau, double* q,
+ const fortran_int_t ldq, double* work ) {
     fortran_int_t info(0);
     LAPACK_DOPGTR( &uplo, &n, ap, tau, q, &ldq, work, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/opmtr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/opmtr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/opmtr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,9 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t opmtr( char side, char uplo, Trans, fortran_int_t m,
- fortran_int_t n, const float* ap, const float* tau, float* c,
- fortran_int_t ldc, float* work ) {
+inline std::ptrdiff_t opmtr( const char side, const char uplo, Trans,
+ const fortran_int_t m, const fortran_int_t n, const float* ap,
+ const float* tau, float* c, const fortran_int_t ldc, float* work ) {
     fortran_int_t info(0);
     LAPACK_SOPMTR( &side, &uplo, &lapack_option< Trans >::value, &m, &n, ap,
             tau, c, &ldc, work, &info );
@@ -67,9 +67,9 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t opmtr( char side, char uplo, Trans, fortran_int_t m,
- fortran_int_t n, const double* ap, const double* tau, double* c,
- fortran_int_t ldc, double* work ) {
+inline std::ptrdiff_t opmtr( const char side, const char uplo, Trans,
+ const fortran_int_t m, const fortran_int_t n, const double* ap,
+ const double* tau, double* c, const fortran_int_t ldc, double* work ) {
     fortran_int_t info(0);
     LAPACK_DOPMTR( &side, &uplo, &lapack_option< Trans >::value, &m, &n, ap,
             tau, c, &ldc, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgbr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgbr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgbr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t orgbr( char vect, fortran_int_t m, fortran_int_t n,
- fortran_int_t k, float* a, fortran_int_t lda, const float* tau,
- float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t orgbr( const char vect, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, float* a,
+ const fortran_int_t lda, const float* tau, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORGBR( &vect, &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -63,9 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t orgbr( char vect, fortran_int_t m, fortran_int_t n,
- fortran_int_t k, double* a, fortran_int_t lda, const double* tau,
- double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t orgbr( const char vect, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, double* a,
+ const fortran_int_t lda, const double* tau, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORGBR( &vect, &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orghr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orghr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orghr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t orghr( fortran_int_t n, fortran_int_t ilo,
- fortran_int_t ihi, float* a, fortran_int_t lda, const float* tau,
- float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t orghr( const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, float* a, const fortran_int_t lda,
+ const float* tau, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORGHR( &n, &ilo, &ihi, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -63,9 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t orghr( fortran_int_t n, fortran_int_t ilo,
- fortran_int_t ihi, double* a, fortran_int_t lda, const double* tau,
- double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t orghr( const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, double* a, const fortran_int_t lda,
+ const double* tau, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORGHR( &n, &ilo, &ihi, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orglq.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orglq.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orglq.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t orglq( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- float* a, fortran_int_t lda, const float* tau, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orglq( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, float* a, const fortran_int_t lda,
+ const float* tau, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORGLQ( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -63,9 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t orglq( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- double* a, fortran_int_t lda, const double* tau, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orglq( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, double* a, const fortran_int_t lda,
+ const double* tau, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORGLQ( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgql.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgql.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgql.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t orgql( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- float* a, fortran_int_t lda, const float* tau, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orgql( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, float* a, const fortran_int_t lda,
+ const float* tau, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORGQL( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -63,9 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t orgql( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- double* a, fortran_int_t lda, const double* tau, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orgql( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, double* a, const fortran_int_t lda,
+ const double* tau, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORGQL( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgqr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgqr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgqr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t orgqr( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- float* a, fortran_int_t lda, const float* tau, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orgqr( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, float* a, const fortran_int_t lda,
+ const float* tau, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORGQR( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -63,9 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t orgqr( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- double* a, fortran_int_t lda, const double* tau, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orgqr( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, double* a, const fortran_int_t lda,
+ const double* tau, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORGQR( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgrq.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgrq.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgrq.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t orgrq( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- float* a, fortran_int_t lda, const float* tau, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orgrq( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, float* a, const fortran_int_t lda,
+ const float* tau, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORGRQ( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -63,9 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t orgrq( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- double* a, fortran_int_t lda, const double* tau, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orgrq( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, double* a, const fortran_int_t lda,
+ const double* tau, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORGRQ( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgtr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgtr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/orgtr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t orgtr( UpLo, fortran_int_t n, float* a,
- fortran_int_t lda, const float* tau, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orgtr( UpLo, const fortran_int_t n, float* a,
+ const fortran_int_t lda, const float* tau, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORGTR( &lapack_option< UpLo >::value, &n, a, &lda, tau, work,
             &lwork, &info );
@@ -67,9 +67,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t orgtr( UpLo, fortran_int_t n, double* a,
- fortran_int_t lda, const double* tau, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t orgtr( UpLo, const fortran_int_t n, double* a,
+ const fortran_int_t lda, const double* tau, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORGTR( &lapack_option< UpLo >::value, &n, a, &lda, tau, work,
             &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormbr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormbr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormbr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormbr( char vect, char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const float* a, fortran_int_t lda,
- const float* tau, float* c, fortran_int_t ldc, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormbr( const char vect, const char side, Trans,
+ const fortran_int_t m, const fortran_int_t n, const fortran_int_t k,
+ const float* a, const fortran_int_t lda, const float* tau, float* c,
+ const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMBR( &vect, &side, &lapack_option< Trans >::value, &m, &n, &k,
             a, &lda, tau, c, &ldc, work, &lwork, &info );
@@ -68,10 +68,11 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormbr( char vect, char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const double* a, fortran_int_t lda,
- const double* tau, double* c, fortran_int_t ldc, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormbr( const char vect, const char side, Trans,
+ const fortran_int_t m, const fortran_int_t n, const fortran_int_t k,
+ const double* a, const fortran_int_t lda, const double* tau,
+ double* c, const fortran_int_t ldc, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMBR( &vect, &side, &lapack_option< Trans >::value, &m, &n, &k,
             a, &lda, tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormhr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormhr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormhr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormhr( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t ilo, fortran_int_t ihi, const float* a,
- fortran_int_t lda, const float* tau, float* c, fortran_int_t ldc,
- float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ormhr( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const float* a, const fortran_int_t lda,
+ const float* tau, float* c, const fortran_int_t ldc, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMHR( &side, &lapack_option< Trans >::value, &m, &n, &ilo, &ihi,
             a, &lda, tau, c, &ldc, work, &lwork, &info );
@@ -68,10 +69,11 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormhr( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t ilo, fortran_int_t ihi,
- const double* a, fortran_int_t lda, const double* tau, double* c,
- fortran_int_t ldc, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ormhr( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const double* a, const fortran_int_t lda,
+ const double* tau, double* c, const fortran_int_t ldc, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMHR( &side, &lapack_option< Trans >::value, &m, &n, &ilo, &ihi,
             a, &lda, tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormlq.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormlq.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormlq.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormlq( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const float* a, fortran_int_t lda,
- const float* tau, float* c, fortran_int_t ldc, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormlq( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const float* a,
+ const fortran_int_t lda, const float* tau, float* c,
+ const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMLQ( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );
@@ -68,10 +68,10 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormlq( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const double* a, fortran_int_t lda,
- const double* tau, double* c, fortran_int_t ldc, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormlq( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const double* a,
+ const fortran_int_t lda, const double* tau, double* c,
+ const fortran_int_t ldc, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMLQ( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormql.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormql.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormql.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormql( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const float* a, fortran_int_t lda,
- const float* tau, float* c, fortran_int_t ldc, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormql( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const float* a,
+ const fortran_int_t lda, const float* tau, float* c,
+ const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMQL( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );
@@ -68,10 +68,10 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormql( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const double* a, fortran_int_t lda,
- const double* tau, double* c, fortran_int_t ldc, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormql( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const double* a,
+ const fortran_int_t lda, const double* tau, double* c,
+ const fortran_int_t ldc, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMQL( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormqr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormqr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormqr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormqr( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const float* a, fortran_int_t lda,
- const float* tau, float* c, fortran_int_t ldc, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormqr( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const float* a,
+ const fortran_int_t lda, const float* tau, float* c,
+ const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMQR( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );
@@ -68,10 +68,10 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormqr( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const double* a, fortran_int_t lda,
- const double* tau, double* c, fortran_int_t ldc, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormqr( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const double* a,
+ const fortran_int_t lda, const double* tau, double* c,
+ const fortran_int_t ldc, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMQR( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormrq.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormrq.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormrq.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormrq( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const float* a, fortran_int_t lda,
- const float* tau, float* c, fortran_int_t ldc, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormrq( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const float* a,
+ const fortran_int_t lda, const float* tau, float* c,
+ const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMRQ( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );
@@ -68,10 +68,10 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormrq( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const double* a, fortran_int_t lda,
- const double* tau, double* c, fortran_int_t ldc, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormrq( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const double* a,
+ const fortran_int_t lda, const double* tau, double* c,
+ const fortran_int_t ldc, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMRQ( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormrz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormrz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormrz.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormrz( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, fortran_int_t l, const float* a,
- fortran_int_t lda, const float* tau, float* c, fortran_int_t ldc,
- float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ormrz( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const fortran_int_t l,
+ const float* a, const fortran_int_t lda, const float* tau, float* c,
+ const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMRZ( &side, &lapack_option< Trans >::value, &m, &n, &k, &l, a,
             &lda, tau, c, &ldc, work, &lwork, &info );
@@ -68,10 +68,11 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t ormrz( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, fortran_int_t l, const double* a,
- fortran_int_t lda, const double* tau, double* c, fortran_int_t ldc,
- double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ormrz( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const fortran_int_t l,
+ const double* a, const fortran_int_t lda, const double* tau,
+ double* c, const fortran_int_t ldc, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMRZ( &side, &lapack_option< Trans >::value, &m, &n, &k, &l, a,
             &lda, tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormtr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormtr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ormtr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,10 @@
 // * float value-type.
 //
 template< typename UpLo, typename Trans >
-inline std::ptrdiff_t ormtr( char side, UpLo, Trans, fortran_int_t m,
- fortran_int_t n, const float* a, fortran_int_t lda, const float* tau,
- float* c, fortran_int_t ldc, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ormtr( const char side, UpLo, Trans,
+ const fortran_int_t m, const fortran_int_t n, const float* a,
+ const fortran_int_t lda, const float* tau, float* c,
+ const fortran_int_t ldc, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SORMTR( &side, &lapack_option< UpLo >::value, &lapack_option<
             Trans >::value, &m, &n, a, &lda, tau, c, &ldc, work, &lwork,
@@ -69,10 +70,10 @@
 // * double value-type.
 //
 template< typename UpLo, typename Trans >
-inline std::ptrdiff_t ormtr( char side, UpLo, Trans, fortran_int_t m,
- fortran_int_t n, const double* a, fortran_int_t lda,
- const double* tau, double* c, fortran_int_t ldc, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ormtr( const char side, UpLo, Trans,
+ const fortran_int_t m, const fortran_int_t n, const double* a,
+ const fortran_int_t lda, const double* tau, double* c,
+ const fortran_int_t ldc, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DORMTR( &side, &lapack_option< UpLo >::value, &lapack_option<
             Trans >::value, &m, &n, a, &lda, tau, c, &ldc, work, &lwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbcon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t pbcon( char uplo, fortran_int_t n, fortran_int_t kd,
- const float* ab, fortran_int_t ldab, float anorm, float& rcond,
- float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t pbcon( const char uplo, const fortran_int_t n,
+ const fortran_int_t kd, const float* ab, const fortran_int_t ldab,
+ const float anorm, float& rcond, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SPBCON( &uplo, &n, &kd, ab, &ldab, &anorm, &rcond, work, iwork,
             &info );
@@ -67,9 +67,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t pbcon( char uplo, fortran_int_t n, fortran_int_t kd,
- const double* ab, fortran_int_t ldab, double anorm, double& rcond,
- double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t pbcon( const char uplo, const fortran_int_t n,
+ const fortran_int_t kd, const double* ab, const fortran_int_t ldab,
+ const double anorm, double& rcond, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DPBCON( &uplo, &n, &kd, ab, &ldab, &anorm, &rcond, work, iwork,
             &info );
@@ -81,9 +82,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t pbcon( char uplo, fortran_int_t n, fortran_int_t kd,
- const std::complex<float>* ab, fortran_int_t ldab, float anorm,
- float& rcond, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t pbcon( const char uplo, const fortran_int_t n,
+ const fortran_int_t kd, const std::complex<float>* ab,
+ const fortran_int_t ldab, const float anorm, float& rcond,
+ std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPBCON( &uplo, &n, &kd, ab, &ldab, &anorm, &rcond, work, rwork,
             &info );
@@ -95,9 +97,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t pbcon( char uplo, fortran_int_t n, fortran_int_t kd,
- const std::complex<double>* ab, fortran_int_t ldab, double anorm,
- double& rcond, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t pbcon( const char uplo, const fortran_int_t n,
+ const fortran_int_t kd, const std::complex<double>* ab,
+ const fortran_int_t ldab, const double anorm, double& rcond,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPBCON( &uplo, &n, &kd, ab, &ldab, &anorm, &rcond, work, rwork,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbequ.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbequ( UpLo, fortran_int_t n, fortran_int_t kd,
- const float* ab, fortran_int_t ldab, float* s, float& scond,
- float& amax ) {
+inline std::ptrdiff_t pbequ( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const float* ab, const fortran_int_t ldab,
+ float* s, float& scond, float& amax ) {
     fortran_int_t info(0);
     LAPACK_SPBEQU( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, s,
             &scond, &amax, &info );
@@ -67,9 +67,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbequ( UpLo, fortran_int_t n, fortran_int_t kd,
- const double* ab, fortran_int_t ldab, double* s, double& scond,
- double& amax ) {
+inline std::ptrdiff_t pbequ( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const double* ab, const fortran_int_t ldab,
+ double* s, double& scond, double& amax ) {
     fortran_int_t info(0);
     LAPACK_DPBEQU( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, s,
             &scond, &amax, &info );
@@ -82,9 +82,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbequ( UpLo, fortran_int_t n, fortran_int_t kd,
- const std::complex<float>* ab, fortran_int_t ldab, float* s,
- float& scond, float& amax ) {
+inline std::ptrdiff_t pbequ( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const std::complex<float>* ab,
+ const fortran_int_t ldab, float* s, float& scond, float& amax ) {
     fortran_int_t info(0);
     LAPACK_CPBEQU( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, s,
             &scond, &amax, &info );
@@ -97,9 +97,9 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbequ( UpLo, fortran_int_t n, fortran_int_t kd,
- const std::complex<double>* ab, fortran_int_t ldab, double* s,
- double& scond, double& amax ) {
+inline std::ptrdiff_t pbequ( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const std::complex<double>* ab,
+ const fortran_int_t ldab, double* s, double& scond, double& amax ) {
     fortran_int_t info(0);
     LAPACK_ZPBEQU( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, s,
             &scond, &amax, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbrfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,11 +54,12 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbrfs( UpLo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, const float* ab, fortran_int_t ldab,
- const float* afb, fortran_int_t ldafb, const float* b,
- fortran_int_t ldb, float* x, fortran_int_t ldx, float* ferr,
- float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t pbrfs( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs, const float* ab,
+ const fortran_int_t ldab, const float* afb, const fortran_int_t ldafb,
+ const float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float* ferr, float* berr, float* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SPBRFS( &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab, &ldab,
             afb, &ldafb, b, &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -71,11 +72,12 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbrfs( UpLo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, const double* ab, fortran_int_t ldab,
- const double* afb, fortran_int_t ldafb, const double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double* ferr,
- double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t pbrfs( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs, const double* ab,
+ const fortran_int_t ldab, const double* afb,
+ const fortran_int_t ldafb, const double* b, const fortran_int_t ldb,
+ double* x, const fortran_int_t ldx, double* ferr, double* berr,
+ double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DPBRFS( &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab, &ldab,
             afb, &ldafb, b, &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -88,12 +90,13 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbrfs( UpLo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, const std::complex<float>* ab, fortran_int_t ldab,
- const std::complex<float>* afb, fortran_int_t ldafb,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float* ferr, float* berr,
- std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t pbrfs( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs,
+ const std::complex<float>* ab, const fortran_int_t ldab,
+ const std::complex<float>* afb, const fortran_int_t ldafb,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float* ferr,
+ float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPBRFS( &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab, &ldab,
             afb, &ldafb, b, &ldb, x, &ldx, ferr, berr, work, rwork, &info );
@@ -106,11 +109,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbrfs( UpLo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, const std::complex<double>* ab,
- fortran_int_t ldab, const std::complex<double>* afb,
- fortran_int_t ldafb, const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double* ferr,
+inline std::ptrdiff_t pbrfs( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs,
+ const std::complex<double>* ab, const fortran_int_t ldab,
+ const std::complex<double>* afb, const fortran_int_t ldafb,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double* ferr,
         double* berr, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPBRFS( &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab, &ldab,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbstf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbstf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbstf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,8 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbstf( UpLo, fortran_int_t n, fortran_int_t kd,
- float* ab, fortran_int_t ldab ) {
+inline std::ptrdiff_t pbstf( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, float* ab, const fortran_int_t ldab ) {
     fortran_int_t info(0);
     LAPACK_SPBSTF( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, &info );
     return info;
@@ -62,8 +62,8 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbstf( UpLo, fortran_int_t n, fortran_int_t kd,
- double* ab, fortran_int_t ldab ) {
+inline std::ptrdiff_t pbstf( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, double* ab, const fortran_int_t ldab ) {
     fortran_int_t info(0);
     LAPACK_DPBSTF( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, &info );
     return info;
@@ -75,8 +75,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbstf( UpLo, fortran_int_t n, fortran_int_t kd,
- std::complex<float>* ab, fortran_int_t ldab ) {
+inline std::ptrdiff_t pbstf( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<float>* ab,
+ const fortran_int_t ldab ) {
     fortran_int_t info(0);
     LAPACK_CPBSTF( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, &info );
     return info;
@@ -88,8 +89,9 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbstf( UpLo, fortran_int_t n, fortran_int_t kd,
- std::complex<double>* ab, fortran_int_t ldab ) {
+inline std::ptrdiff_t pbstf( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<double>* ab,
+ const fortran_int_t ldab ) {
     fortran_int_t info(0);
     LAPACK_ZPBSTF( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,8 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbtrf( UpLo, fortran_int_t n, fortran_int_t kd,
- float* ab, fortran_int_t ldab ) {
+inline std::ptrdiff_t pbtrf( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, float* ab, const fortran_int_t ldab ) {
     fortran_int_t info(0);
     LAPACK_SPBTRF( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, &info );
     return info;
@@ -62,8 +62,8 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbtrf( UpLo, fortran_int_t n, fortran_int_t kd,
- double* ab, fortran_int_t ldab ) {
+inline std::ptrdiff_t pbtrf( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, double* ab, const fortran_int_t ldab ) {
     fortran_int_t info(0);
     LAPACK_DPBTRF( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, &info );
     return info;
@@ -75,8 +75,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbtrf( UpLo, fortran_int_t n, fortran_int_t kd,
- std::complex<float>* ab, fortran_int_t ldab ) {
+inline std::ptrdiff_t pbtrf( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<float>* ab,
+ const fortran_int_t ldab ) {
     fortran_int_t info(0);
     LAPACK_CPBTRF( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, &info );
     return info;
@@ -88,8 +89,9 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbtrf( UpLo, fortran_int_t n, fortran_int_t kd,
- std::complex<double>* ab, fortran_int_t ldab ) {
+inline std::ptrdiff_t pbtrf( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<double>* ab,
+ const fortran_int_t ldab ) {
     fortran_int_t info(0);
     LAPACK_ZPBTRF( &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pbtrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -48,9 +48,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t pbtrs( char uplo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, const float* ab, fortran_int_t ldab, float* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pbtrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs, const float* ab,
+ const fortran_int_t ldab, float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SPBTRS( &uplo, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info );
     return info;
@@ -61,9 +61,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t pbtrs( char uplo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, const double* ab, fortran_int_t ldab, double* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pbtrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs, const double* ab,
+ const fortran_int_t ldab, double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DPBTRS( &uplo, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info );
     return info;
@@ -74,9 +74,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t pbtrs( char uplo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, const std::complex<float>* ab, fortran_int_t ldab,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pbtrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs,
+ const std::complex<float>* ab, const fortran_int_t ldab,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CPBTRS( &uplo, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info );
     return info;
@@ -87,9 +88,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t pbtrs( char uplo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, const std::complex<double>* ab,
- fortran_int_t ldab, std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pbtrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs,
+ const std::complex<double>* ab, const fortran_int_t ldab,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZPBTRS( &uplo, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,7 +49,7 @@
 // * float value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftrf( TransR, UpLo, fortran_int_t n, float* a ) {
+inline std::ptrdiff_t pftrf( TransR, UpLo, const fortran_int_t n, float* a ) {
     fortran_int_t info(0);
     LAPACK_SPFTRF( &lapack_option< TransR >::value, &lapack_option<
             UpLo >::value, &n, a, &info );
@@ -62,7 +62,7 @@
 // * double value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftrf( TransR, UpLo, fortran_int_t n, double* a ) {
+inline std::ptrdiff_t pftrf( TransR, UpLo, const fortran_int_t n, double* a ) {
     fortran_int_t info(0);
     LAPACK_DPFTRF( &lapack_option< TransR >::value, &lapack_option<
             UpLo >::value, &n, a, &info );
@@ -75,7 +75,7 @@
 // * complex<float> value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftrf( TransR, UpLo, fortran_int_t n,
+inline std::ptrdiff_t pftrf( TransR, UpLo, const fortran_int_t n,
         std::complex<float>* a ) {
     fortran_int_t info(0);
     LAPACK_CPFTRF( &lapack_option< TransR >::value, &lapack_option<
@@ -89,7 +89,7 @@
 // * complex<double> value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftrf( TransR, UpLo, fortran_int_t n,
+inline std::ptrdiff_t pftrf( TransR, UpLo, const fortran_int_t n,
         std::complex<double>* a ) {
     fortran_int_t info(0);
     LAPACK_ZPFTRF( &lapack_option< TransR >::value, &lapack_option<

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftri.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftri.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftri.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,7 +49,7 @@
 // * float value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftri( TransR, UpLo, fortran_int_t n, float* a ) {
+inline std::ptrdiff_t pftri( TransR, UpLo, const fortran_int_t n, float* a ) {
     fortran_int_t info(0);
     LAPACK_SPFTRI( &lapack_option< TransR >::value, &lapack_option<
             UpLo >::value, &n, a, &info );
@@ -62,7 +62,7 @@
 // * double value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftri( TransR, UpLo, fortran_int_t n, double* a ) {
+inline std::ptrdiff_t pftri( TransR, UpLo, const fortran_int_t n, double* a ) {
     fortran_int_t info(0);
     LAPACK_DPFTRI( &lapack_option< TransR >::value, &lapack_option<
             UpLo >::value, &n, a, &info );
@@ -75,7 +75,7 @@
 // * complex<float> value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftri( TransR, UpLo, fortran_int_t n,
+inline std::ptrdiff_t pftri( TransR, UpLo, const fortran_int_t n,
         std::complex<float>* a ) {
     fortran_int_t info(0);
     LAPACK_CPFTRI( &lapack_option< TransR >::value, &lapack_option<
@@ -89,7 +89,7 @@
 // * complex<double> value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftri( TransR, UpLo, fortran_int_t n,
+inline std::ptrdiff_t pftri( TransR, UpLo, const fortran_int_t n,
         std::complex<double>* a ) {
     fortran_int_t info(0);
     LAPACK_ZPFTRI( &lapack_option< TransR >::value, &lapack_option<

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pftrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,9 @@
 // * float value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftrs( TransR, UpLo, fortran_int_t n, fortran_int_t nrhs,
- const float* a, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pftrs( TransR, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* a, float* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SPFTRS( &lapack_option< TransR >::value, &lapack_option<
             UpLo >::value, &n, &nrhs, a, b, &ldb, &info );
@@ -63,8 +64,9 @@
 // * double value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftrs( TransR, UpLo, fortran_int_t n, fortran_int_t nrhs,
- const double* a, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pftrs( TransR, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* a, double* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DPFTRS( &lapack_option< TransR >::value, &lapack_option<
             UpLo >::value, &n, &nrhs, a, b, &ldb, &info );
@@ -77,9 +79,9 @@
 // * complex<float> value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftrs( TransR, UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pftrs( TransR, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CPFTRS( &lapack_option< TransR >::value, &lapack_option<
             UpLo >::value, &n, &nrhs, a, b, &ldb, &info );
@@ -92,9 +94,9 @@
 // * complex<double> value-type.
 //
 template< typename TransR, typename UpLo >
-inline std::ptrdiff_t pftrs( TransR, UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pftrs( TransR, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZPFTRS( &lapack_option< TransR >::value, &lapack_option<
             UpLo >::value, &n, &nrhs, a, b, &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pocon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pocon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pocon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,8 +54,8 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pocon( UpLo, fortran_int_t n, const float* a,
- fortran_int_t lda, float anorm, float& rcond, float* work,
+inline std::ptrdiff_t pocon( UpLo, const fortran_int_t n, const float* a,
+ const fortran_int_t lda, const float anorm, float& rcond, float* work,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SPOCON( &lapack_option< UpLo >::value, &n, a, &lda, &anorm, &rcond,
@@ -69,9 +69,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pocon( UpLo, fortran_int_t n, const double* a,
- fortran_int_t lda, double anorm, double& rcond, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t pocon( UpLo, const fortran_int_t n, const double* a,
+ const fortran_int_t lda, const double anorm, double& rcond,
+ double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DPOCON( &lapack_option< UpLo >::value, &n, a, &lda, &anorm, &rcond,
             work, iwork, &info );
@@ -84,9 +84,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pocon( UpLo, fortran_int_t n,
- const std::complex<float>* a, fortran_int_t lda, float anorm,
- float& rcond, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t pocon( UpLo, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const float anorm, float& rcond, std::complex<float>* work,
+ float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPOCON( &lapack_option< UpLo >::value, &n, a, &lda, &anorm, &rcond,
             work, rwork, &info );
@@ -99,9 +100,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pocon( UpLo, fortran_int_t n,
- const std::complex<double>* a, fortran_int_t lda, double anorm,
- double& rcond, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t pocon( UpLo, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const double anorm, double& rcond, std::complex<double>* work,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPOCON( &lapack_option< UpLo >::value, &n, a, &lda, &anorm, &rcond,
             work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/poequ.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/poequ.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/poequ.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,8 +50,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t poequ( fortran_int_t n, const float* a,
- fortran_int_t lda, float* s, float& scond, float& amax ) {
+inline std::ptrdiff_t poequ( const fortran_int_t n, const float* a,
+ const fortran_int_t lda, float* s, float& scond, float& amax ) {
     fortran_int_t info(0);
     LAPACK_SPOEQU( &n, a, &lda, s, &scond, &amax, &info );
     return info;
@@ -62,8 +62,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t poequ( fortran_int_t n, const double* a,
- fortran_int_t lda, double* s, double& scond, double& amax ) {
+inline std::ptrdiff_t poequ( const fortran_int_t n, const double* a,
+ const fortran_int_t lda, double* s, double& scond, double& amax ) {
     fortran_int_t info(0);
     LAPACK_DPOEQU( &n, a, &lda, s, &scond, &amax, &info );
     return info;
@@ -74,8 +74,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t poequ( fortran_int_t n, const std::complex<float>* a,
- fortran_int_t lda, float* s, float& scond, float& amax ) {
+inline std::ptrdiff_t poequ( const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda, float* s,
+ float& scond, float& amax ) {
     fortran_int_t info(0);
     LAPACK_CPOEQU( &n, a, &lda, s, &scond, &amax, &info );
     return info;
@@ -86,8 +87,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t poequ( fortran_int_t n, const std::complex<double>* a,
- fortran_int_t lda, double* s, double& scond, double& amax ) {
+inline std::ptrdiff_t poequ( const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda, double* s,
+ double& scond, double& amax ) {
     fortran_int_t info(0);
     LAPACK_ZPOEQU( &n, a, &lda, s, &scond, &amax, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/porfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/porfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/porfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,11 +54,11 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t porfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const float* a, fortran_int_t lda, const float* af,
- fortran_int_t ldaf, const float* b, fortran_int_t ldb, float* x,
- fortran_int_t ldx, float* ferr, float* berr, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t porfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* a, const fortran_int_t lda,
+ const float* af, const fortran_int_t ldaf, const float* b,
+ const fortran_int_t ldb, float* x, const fortran_int_t ldx,
+ float* ferr, float* berr, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SPORFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, b, &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -71,11 +71,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t porfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const double* a, fortran_int_t lda, const double* af,
- fortran_int_t ldaf, const double* b, fortran_int_t ldb, double* x,
- fortran_int_t ldx, double* ferr, double* berr, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t porfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* a, const fortran_int_t lda,
+ const double* af, const fortran_int_t ldaf, const double* b,
+ const fortran_int_t ldb, double* x, const fortran_int_t ldx,
+ double* ferr, double* berr, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DPORFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, b, &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -88,11 +88,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t porfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* af, fortran_int_t ldaf,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float* ferr, float* berr,
+inline std::ptrdiff_t porfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* af,
+ const fortran_int_t ldaf, const std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* x,
+ const fortran_int_t ldx, float* ferr, float* berr,
         std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPORFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
@@ -106,12 +107,13 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t porfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* af, fortran_int_t ldaf,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double* ferr,
- double* berr, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t porfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* af,
+ const fortran_int_t ldaf, const std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* x,
+ const fortran_int_t ldx, double* ferr, double* berr,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPORFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, b, &ldb, x, &ldx, ferr, berr, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -58,7 +58,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrf( Order, UpLo, int n, float* a, int lda ) {
+inline std::ptrdiff_t potrf( Order, UpLo, const int n, float* a,
+ const int lda ) {
     return clapack_spotrf( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, a, lda );
 }
@@ -69,7 +70,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrf( Order, UpLo, int n, double* a, int lda ) {
+inline std::ptrdiff_t potrf( Order, UpLo, const int n, double* a,
+ const int lda ) {
     return clapack_dpotrf( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, a, lda );
 }
@@ -80,8 +82,8 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrf( Order, UpLo, int n, std::complex<float>* a,
- int lda ) {
+inline std::ptrdiff_t potrf( Order, UpLo, const int n, std::complex<float>* a,
+ const int lda ) {
     return clapack_cpotrf( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, a, lda );
 }
@@ -92,8 +94,8 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrf( Order, UpLo, int n, std::complex<double>* a,
- int lda ) {
+inline std::ptrdiff_t potrf( Order, UpLo, const int n, std::complex<double>* a,
+ const int lda ) {
     return clapack_zpotrf( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, a, lda );
 }
@@ -105,8 +107,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrf( Order, UpLo, fortran_int_t n, float* a,
- fortran_int_t lda ) {
+inline std::ptrdiff_t potrf( Order, UpLo, const fortran_int_t n, float* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_SPOTRF( &lapack_option< UpLo >::value, &n, a, &lda, &info );
@@ -119,8 +121,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrf( Order, UpLo, fortran_int_t n, double* a,
- fortran_int_t lda ) {
+inline std::ptrdiff_t potrf( Order, UpLo, const fortran_int_t n, double* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DPOTRF( &lapack_option< UpLo >::value, &n, a, &lda, &info );
@@ -133,8 +135,8 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrf( Order, UpLo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda ) {
+inline std::ptrdiff_t potrf( Order, UpLo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CPOTRF( &lapack_option< UpLo >::value, &n, a, &lda, &info );
@@ -147,8 +149,8 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrf( Order, UpLo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda ) {
+inline std::ptrdiff_t potrf( Order, UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZPOTRF( &lapack_option< UpLo >::value, &n, a, &lda, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potri.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potri.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potri.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -58,7 +58,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potri( Order, UpLo, int n, float* a, int lda ) {
+inline std::ptrdiff_t potri( Order, UpLo, const int n, float* a,
+ const int lda ) {
     return clapack_spotri( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, a, lda );
 }
@@ -69,7 +70,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potri( Order, UpLo, int n, double* a, int lda ) {
+inline std::ptrdiff_t potri( Order, UpLo, const int n, double* a,
+ const int lda ) {
     return clapack_dpotri( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, a, lda );
 }
@@ -80,8 +82,8 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potri( Order, UpLo, int n, std::complex<float>* a,
- int lda ) {
+inline std::ptrdiff_t potri( Order, UpLo, const int n, std::complex<float>* a,
+ const int lda ) {
     return clapack_cpotri( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, a, lda );
 }
@@ -92,8 +94,8 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potri( Order, UpLo, int n, std::complex<double>* a,
- int lda ) {
+inline std::ptrdiff_t potri( Order, UpLo, const int n, std::complex<double>* a,
+ const int lda ) {
     return clapack_zpotri( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, a, lda );
 }
@@ -105,8 +107,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potri( Order, UpLo, fortran_int_t n, float* a,
- fortran_int_t lda ) {
+inline std::ptrdiff_t potri( Order, UpLo, const fortran_int_t n, float* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_SPOTRI( &lapack_option< UpLo >::value, &n, a, &lda, &info );
@@ -119,8 +121,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potri( Order, UpLo, fortran_int_t n, double* a,
- fortran_int_t lda ) {
+inline std::ptrdiff_t potri( Order, UpLo, const fortran_int_t n, double* a,
+ const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DPOTRI( &lapack_option< UpLo >::value, &n, a, &lda, &info );
@@ -133,8 +135,8 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potri( Order, UpLo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda ) {
+inline std::ptrdiff_t potri( Order, UpLo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CPOTRI( &lapack_option< UpLo >::value, &n, a, &lda, &info );
@@ -147,8 +149,8 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potri( Order, UpLo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda ) {
+inline std::ptrdiff_t potri( Order, UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZPOTRI( &lapack_option< UpLo >::value, &n, a, &lda, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/potrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -58,8 +58,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrs( Order, UpLo, int n, int nrhs, const float* a,
- int lda, float* b, int ldb ) {
+inline std::ptrdiff_t potrs( Order, UpLo, const int n, const int nrhs,
+ const float* a, const int lda, float* b, const int ldb ) {
     return clapack_spotrs( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, nrhs, a, lda, b, ldb );
 }
@@ -70,8 +70,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrs( Order, UpLo, int n, int nrhs, const double* a,
- int lda, double* b, int ldb ) {
+inline std::ptrdiff_t potrs( Order, UpLo, const int n, const int nrhs,
+ const double* a, const int lda, double* b, const int ldb ) {
     return clapack_dpotrs( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, nrhs, a, lda, b, ldb );
 }
@@ -82,9 +82,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrs( Order, UpLo, int n, int nrhs,
- const std::complex<float>* a, int lda, std::complex<float>* b,
- int ldb ) {
+inline std::ptrdiff_t potrs( Order, UpLo, const int n, const int nrhs,
+ const std::complex<float>* a, const int lda, std::complex<float>* b,
+ const int ldb ) {
     return clapack_cpotrs( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, nrhs, a, lda, b, ldb );
 }
@@ -95,9 +95,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrs( Order, UpLo, int n, int nrhs,
- const std::complex<double>* a, int lda, std::complex<double>* b,
- int ldb ) {
+inline std::ptrdiff_t potrs( Order, UpLo, const int n, const int nrhs,
+ const std::complex<double>* a, const int lda, std::complex<double>* b,
+ const int ldb ) {
     return clapack_zpotrs( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, nrhs, a, lda, b, ldb );
 }
@@ -109,8 +109,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrs( Order, UpLo, fortran_int_t n, fortran_int_t nrhs,
- const float* a, fortran_int_t lda, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t potrs( Order, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* a, const fortran_int_t lda,
+ float* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_SPOTRS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,
@@ -124,8 +125,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrs( Order, UpLo, fortran_int_t n, fortran_int_t nrhs,
- const double* a, fortran_int_t lda, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t potrs( Order, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* a, const fortran_int_t lda,
+ double* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DPOTRS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,
@@ -139,9 +141,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrs( Order, UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t potrs( Order, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CPOTRS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,
@@ -155,9 +158,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t potrs( Order, UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t potrs( Order, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZPOTRS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pprfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pprfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pprfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,9 +54,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const float* ap, const float* afp, const float* b, fortran_int_t ldb,
- float* x, fortran_int_t ldx, float* ferr, float* berr, float* work,
+inline std::ptrdiff_t pprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* ap, const float* afp,
+ const float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float* ferr, float* berr, float* work,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SPPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, b, &ldb,
@@ -70,10 +71,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const double* ap, const double* afp, const double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double* ferr,
- double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t pprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* ap, const double* afp,
+ const double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double* ferr, double* berr, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DPPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, b, &ldb,
             x, &ldx, ferr, berr, work, iwork, &info );
@@ -86,10 +88,11 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* ap, const std::complex<float>* afp,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float* ferr, float* berr,
+inline std::ptrdiff_t pprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* ap,
+ const std::complex<float>* afp, const std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* x,
+ const fortran_int_t ldx, float* ferr, float* berr,
         std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, b, &ldb,
@@ -103,11 +106,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* ap, const std::complex<double>* afp,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double* ferr,
- double* berr, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t pprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* ap,
+ const std::complex<double>* afp, const std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* x,
+ const fortran_int_t ldx, double* ferr, double* berr,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, b, &ldb,
             x, &ldx, ferr, berr, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,7 +49,7 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pptrf( UpLo, fortran_int_t n, float* ap ) {
+inline std::ptrdiff_t pptrf( UpLo, const fortran_int_t n, float* ap ) {
     fortran_int_t info(0);
     LAPACK_SPPTRF( &lapack_option< UpLo >::value, &n, ap, &info );
     return info;
@@ -61,7 +61,7 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pptrf( UpLo, fortran_int_t n, double* ap ) {
+inline std::ptrdiff_t pptrf( UpLo, const fortran_int_t n, double* ap ) {
     fortran_int_t info(0);
     LAPACK_DPPTRF( &lapack_option< UpLo >::value, &n, ap, &info );
     return info;
@@ -73,7 +73,8 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pptrf( UpLo, fortran_int_t n, std::complex<float>* ap ) {
+inline std::ptrdiff_t pptrf( UpLo, const fortran_int_t n,
+ std::complex<float>* ap ) {
     fortran_int_t info(0);
     LAPACK_CPPTRF( &lapack_option< UpLo >::value, &n, ap, &info );
     return info;
@@ -85,7 +86,8 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pptrf( UpLo, fortran_int_t n, std::complex<double>* ap ) {
+inline std::ptrdiff_t pptrf( UpLo, const fortran_int_t n,
+ std::complex<double>* ap ) {
     fortran_int_t info(0);
     LAPACK_ZPPTRF( &lapack_option< UpLo >::value, &n, ap, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pptrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pptrs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const float* ap, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pptrs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* ap, float* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SPPTRS( &lapack_option< UpLo >::value, &n, &nrhs, ap, b, &ldb,
             &info );
@@ -63,8 +64,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pptrs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const double* ap, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pptrs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* ap, double* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DPPTRS( &lapack_option< UpLo >::value, &n, &nrhs, ap, b, &ldb,
             &info );
@@ -77,9 +79,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pptrs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* ap, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pptrs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* ap,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CPPTRS( &lapack_option< UpLo >::value, &n, &nrhs, ap, b, &ldb,
             &info );
@@ -92,9 +94,9 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pptrs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* ap, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pptrs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* ap,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZPPTRS( &lapack_option< UpLo >::value, &n, &nrhs, ap, b, &ldb,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pteqr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pteqr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pteqr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,8 +52,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t pteqr( char compz, fortran_int_t n, float* d, float* e,
- float* z, fortran_int_t ldz, float* work ) {
+inline std::ptrdiff_t pteqr( const char compz, const fortran_int_t n, float* d,
+ float* e, float* z, const fortran_int_t ldz, float* work ) {
     fortran_int_t info(0);
     LAPACK_SPTEQR( &compz, &n, d, e, z, &ldz, work, &info );
     return info;
@@ -64,8 +64,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t pteqr( char compz, fortran_int_t n, double* d, double* e,
- double* z, fortran_int_t ldz, double* work ) {
+inline std::ptrdiff_t pteqr( const char compz, const fortran_int_t n,
+ double* d, double* e, double* z, const fortran_int_t ldz,
+ double* work ) {
     fortran_int_t info(0);
     LAPACK_DPTEQR( &compz, &n, d, e, z, &ldz, work, &info );
     return info;
@@ -76,8 +77,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t pteqr( char compz, fortran_int_t n, float* d, float* e,
- std::complex<float>* z, fortran_int_t ldz, float* work ) {
+inline std::ptrdiff_t pteqr( const char compz, const fortran_int_t n, float* d,
+ float* e, std::complex<float>* z, const fortran_int_t ldz,
+ float* work ) {
     fortran_int_t info(0);
     LAPACK_CPTEQR( &compz, &n, d, e, z, &ldz, work, &info );
     return info;
@@ -88,8 +90,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t pteqr( char compz, fortran_int_t n, double* d, double* e,
- std::complex<double>* z, fortran_int_t ldz, double* work ) {
+inline std::ptrdiff_t pteqr( const char compz, const fortran_int_t n,
+ double* d, double* e, std::complex<double>* z,
+ const fortran_int_t ldz, double* work ) {
     fortran_int_t info(0);
     LAPACK_ZPTEQR( &compz, &n, d, e, z, &ldz, work, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ptrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ptrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ptrfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ptrfs( fortran_int_t n, fortran_int_t nrhs,
+inline std::ptrdiff_t ptrfs( const fortran_int_t n, const fortran_int_t nrhs,
         const float* d, const float* e, const float* df, const float* ef,
- const float* b, fortran_int_t ldb, float* x, fortran_int_t ldx,
- float* ferr, float* berr, float* work ) {
+ const float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float* ferr, float* berr, float* work ) {
     fortran_int_t info(0);
     LAPACK_SPTRFS( &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, ferr, berr,
             work, &info );
@@ -68,10 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ptrfs( fortran_int_t n, fortran_int_t nrhs,
+inline std::ptrdiff_t ptrfs( const fortran_int_t n, const fortran_int_t nrhs,
         const double* d, const double* e, const double* df, const double* ef,
- const double* b, fortran_int_t ldb, double* x, fortran_int_t ldx,
- double* ferr, double* berr, double* work ) {
+ const double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double* ferr, double* berr, double* work ) {
     fortran_int_t info(0);
     LAPACK_DPTRFS( &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, ferr, berr,
             work, &info );
@@ -83,11 +83,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ptrfs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const float* d, const std::complex<float>* e, const float* df,
+inline std::ptrdiff_t ptrfs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* d,
+ const std::complex<float>* e, const float* df,
         const std::complex<float>* ef, const std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* x, fortran_int_t ldx,
- float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
+ const fortran_int_t ldb, std::complex<float>* x,
+ const fortran_int_t ldx, float* ferr, float* berr,
+ std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPTRFS( &uplo, &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, ferr,
             berr, work, rwork, &info );
@@ -99,12 +101,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ptrfs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const double* d, const std::complex<double>* e, const double* df,
+inline std::ptrdiff_t ptrfs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* d,
+ const std::complex<double>* e, const double* df,
         const std::complex<double>* ef, const std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double* ferr, double* berr, std::complex<double>* work,
- double* rwork ) {
+ const fortran_int_t ldb, std::complex<double>* x,
+ const fortran_int_t ldx, double* ferr, double* berr,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPTRFS( &uplo, &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, ferr,
             berr, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pttrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pttrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/pttrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,8 +51,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t pttrs( fortran_int_t n, fortran_int_t nrhs,
- const float* d, const float* e, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pttrs( const fortran_int_t n, const fortran_int_t nrhs,
+ const float* d, const float* e, float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SPTTRS( &n, &nrhs, d, e, b, &ldb, &info );
     return info;
@@ -63,8 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t pttrs( fortran_int_t n, fortran_int_t nrhs,
- const double* d, const double* e, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pttrs( const fortran_int_t n, const fortran_int_t nrhs,
+ const double* d, const double* e, double* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DPTTRS( &n, &nrhs, d, e, b, &ldb, &info );
     return info;
@@ -75,9 +76,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t pttrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const float* d, const std::complex<float>* e, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pttrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* d,
+ const std::complex<float>* e, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CPTTRS( &uplo, &n, &nrhs, d, e, b, &ldb, &info );
     return info;
@@ -88,9 +90,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t pttrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const double* d, const std::complex<double>* e,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pttrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* d,
+ const std::complex<double>* e, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZPTTRS( &uplo, &n, &nrhs, d, e, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbgst.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbgst.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbgst.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,10 +51,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbgst( char vect, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, float* ab, fortran_int_t ldab,
- const float* bb, fortran_int_t ldbb, float* x, fortran_int_t ldx,
- float* work ) {
+inline std::ptrdiff_t sbgst( const char vect, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb, float* ab,
+ const fortran_int_t ldab, const float* bb, const fortran_int_t ldbb,
+ float* x, const fortran_int_t ldx, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSBGST( &vect, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, x, &ldx, work, &info );
@@ -67,10 +67,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbgst( char vect, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, double* ab, fortran_int_t ldab,
- const double* bb, fortran_int_t ldbb, double* x, fortran_int_t ldx,
- double* work ) {
+inline std::ptrdiff_t sbgst( const char vect, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb, double* ab,
+ const fortran_int_t ldab, const double* bb, const fortran_int_t ldbb,
+ double* x, const fortran_int_t ldx, double* work ) {
     fortran_int_t info(0);
     LAPACK_DSBGST( &vect, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, x, &ldx, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbtrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbtrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sbtrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbtrd( char vect, UpLo, fortran_int_t n,
- fortran_int_t kd, float* ab, fortran_int_t ldab, float* d, float* e,
- float* q, fortran_int_t ldq, float* work ) {
+inline std::ptrdiff_t sbtrd( const char vect, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, float* ab, const fortran_int_t ldab, float* d,
+ float* e, float* q, const fortran_int_t ldq, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSBTRD( &vect, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab,
             d, e, q, &ldq, work, &info );
@@ -66,9 +66,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbtrd( char vect, UpLo, fortran_int_t n,
- fortran_int_t kd, double* ab, fortran_int_t ldab, double* d,
- double* e, double* q, fortran_int_t ldq, double* work ) {
+inline std::ptrdiff_t sbtrd( const char vect, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, double* ab, const fortran_int_t ldab,
+ double* d, double* e, double* q, const fortran_int_t ldq,
+ double* work ) {
     fortran_int_t info(0);
     LAPACK_DSBTRD( &vect, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab,
             d, e, q, &ldq, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sprfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sprfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sprfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,10 +54,11 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const float* ap, const float* afp, const fortran_int_t* ipiv,
- const float* b, fortran_int_t ldb, float* x, fortran_int_t ldx,
- float* ferr, float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t sprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* ap, const float* afp,
+ const fortran_int_t* ipiv, const float* b, const fortran_int_t ldb,
+ float* x, const fortran_int_t ldx, float* ferr, float* berr,
+ float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SSPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, ipiv, b,
             &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -70,10 +71,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const double* ap, const double* afp, const fortran_int_t* ipiv,
- const double* b, fortran_int_t ldb, double* x, fortran_int_t ldx,
- double* ferr, double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t sprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* ap, const double* afp,
+ const fortran_int_t* ipiv, const double* b, const fortran_int_t ldb,
+ double* x, const fortran_int_t ldx, double* ferr, double* berr,
+ double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DSPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, ipiv, b,
             &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -86,11 +88,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* ap, const std::complex<float>* afp,
- const fortran_int_t* ipiv, const std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* x, fortran_int_t ldx,
- float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t sprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* ap,
+ const std::complex<float>* afp, const fortran_int_t* ipiv,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float* ferr,
+ float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CSPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, ipiv, b,
             &ldb, x, &ldx, ferr, berr, work, rwork, &info );
@@ -103,12 +106,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sprfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* ap, const std::complex<double>* afp,
- const fortran_int_t* ipiv, const std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double* ferr, double* berr, std::complex<double>* work,
- double* rwork ) {
+inline std::ptrdiff_t sprfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* ap,
+ const std::complex<double>* afp, const fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double* ferr,
+ double* berr, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZSPRFS( &lapack_option< UpLo >::value, &n, &nrhs, ap, afp, ipiv, b,
             &ldb, x, &ldx, ferr, berr, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,7 +49,7 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sptrf( UpLo, fortran_int_t n, float* ap,
+inline std::ptrdiff_t sptrf( UpLo, const fortran_int_t n, float* ap,
         fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_SSPTRF( &lapack_option< UpLo >::value, &n, ap, ipiv, &info );
@@ -62,7 +62,7 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sptrf( UpLo, fortran_int_t n, double* ap,
+inline std::ptrdiff_t sptrf( UpLo, const fortran_int_t n, double* ap,
         fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_DSPTRF( &lapack_option< UpLo >::value, &n, ap, ipiv, &info );
@@ -75,8 +75,8 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sptrf( UpLo, fortran_int_t n, std::complex<float>* ap,
- fortran_int_t* ipiv ) {
+inline std::ptrdiff_t sptrf( UpLo, const fortran_int_t n,
+ std::complex<float>* ap, fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_CSPTRF( &lapack_option< UpLo >::value, &n, ap, ipiv, &info );
     return info;
@@ -88,8 +88,8 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sptrf( UpLo, fortran_int_t n, std::complex<double>* ap,
- fortran_int_t* ipiv ) {
+inline std::ptrdiff_t sptrf( UpLo, const fortran_int_t n,
+ std::complex<double>* ap, fortran_int_t* ipiv ) {
     fortran_int_t info(0);
     LAPACK_ZSPTRF( &lapack_option< UpLo >::value, &n, ap, ipiv, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sptrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -48,9 +48,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t sptrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const float* ap, const fortran_int_t* ipiv, float* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t sptrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* ap, const fortran_int_t* ipiv,
+ float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SSPTRS( &uplo, &n, &nrhs, ap, ipiv, b, &ldb, &info );
     return info;
@@ -61,9 +61,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t sptrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const double* ap, const fortran_int_t* ipiv, double* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t sptrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* ap, const fortran_int_t* ipiv,
+ double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DSPTRS( &uplo, &n, &nrhs, ap, ipiv, b, &ldb, &info );
     return info;
@@ -74,9 +74,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t sptrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* ap, const fortran_int_t* ipiv,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t sptrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* ap,
+ const fortran_int_t* ipiv, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CSPTRS( &uplo, &n, &nrhs, ap, ipiv, b, &ldb, &info );
     return info;
@@ -87,9 +88,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t sptrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* ap, const fortran_int_t* ipiv,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t sptrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* ap,
+ const fortran_int_t* ipiv, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZSPTRS( &uplo, &n, &nrhs, ap, ipiv, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stebz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stebz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stebz.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stebz( char range, char order, fortran_int_t n, float vl,
- float vu, fortran_int_t il, fortran_int_t iu, float abstol,
+inline std::ptrdiff_t stebz( const char range, const char order,
+ const fortran_int_t n, const float vl, const float vu,
+ const fortran_int_t il, const fortran_int_t iu, const float abstol,
         const float* d, const float* e, fortran_int_t& m,
         fortran_int_t& nsplit, float* w, fortran_int_t* iblock,
         fortran_int_t* isplit, float* work, fortran_int_t* iwork ) {
@@ -65,9 +66,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stebz( char range, char order, fortran_int_t n,
- double vl, double vu, fortran_int_t il, fortran_int_t iu,
- double abstol, const double* d, const double* e, fortran_int_t& m,
+inline std::ptrdiff_t stebz( const char range, const char order,
+ const fortran_int_t n, const double vl, const double vu,
+ const fortran_int_t il, const fortran_int_t iu, const double abstol,
+ const double* d, const double* e, fortran_int_t& m,
         fortran_int_t& nsplit, double* w, fortran_int_t* iblock,
         fortran_int_t* isplit, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stedc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stedc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stedc.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stedc( char compz, fortran_int_t n, float* d, float* e,
- float* z, fortran_int_t ldz, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stedc( const char compz, const fortran_int_t n, float* d,
+ float* e, float* z, const fortran_int_t ldz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSTEDC( &compz, &n, d, e, z, &ldz, work, &lwork, iwork, &liwork,
             &info );
@@ -67,9 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stedc( char compz, fortran_int_t n, double* d, double* e,
- double* z, fortran_int_t ldz, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stedc( const char compz, const fortran_int_t n,
+ double* d, double* e, double* z, const fortran_int_t ldz,
+ double* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSTEDC( &compz, &n, d, e, z, &ldz, work, &lwork, iwork, &liwork,
             &info );
@@ -81,10 +83,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t stedc( char compz, fortran_int_t n, float* d, float* e,
- std::complex<float>* z, fortran_int_t ldz, std::complex<float>* work,
- fortran_int_t lwork, float* rwork, fortran_int_t lrwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stedc( const char compz, const fortran_int_t n, float* d,
+ float* e, std::complex<float>* z, const fortran_int_t ldz,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork,
+ const fortran_int_t lrwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CSTEDC( &compz, &n, d, e, z, &ldz, work, &lwork, rwork, &lrwork,
             iwork, &liwork, &info );
@@ -96,10 +99,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t stedc( char compz, fortran_int_t n, double* d, double* e,
- std::complex<double>* z, fortran_int_t ldz,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stedc( const char compz, const fortran_int_t n,
+ double* d, double* e, std::complex<double>* z,
+ const fortran_int_t ldz, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZSTEDC( &compz, &n, d, e, z, &ldz, work, &lwork, rwork, &lrwork,
             iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stegr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stegr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stegr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,11 +53,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stegr( char jobz, char range, fortran_int_t n, float* d,
- float* e, float vl, float vu, fortran_int_t il, fortran_int_t iu,
- float abstol, fortran_int_t& m, float* w, float* z, fortran_int_t ldz,
- fortran_int_t* isuppz, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stegr( const char jobz, const char range,
+ const fortran_int_t n, float* d, float* e, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ const float abstol, fortran_int_t& m, float* w, float* z,
+ const fortran_int_t ldz, fortran_int_t* isuppz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSTEGR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &m,
             w, z, &ldz, isuppz, work, &lwork, iwork, &liwork, &info );
@@ -69,11 +71,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stegr( char jobz, char range, fortran_int_t n, double* d,
- double* e, double vl, double vu, fortran_int_t il, fortran_int_t iu,
- double abstol, fortran_int_t& m, double* w, double* z,
- fortran_int_t ldz, fortran_int_t* isuppz, double* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stegr( const char jobz, const char range,
+ const fortran_int_t n, double* d, double* e, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w, double* z,
+ const fortran_int_t ldz, fortran_int_t* isuppz, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSTEGR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &m,
             w, z, &ldz, isuppz, work, &lwork, iwork, &liwork, &info );
@@ -85,11 +89,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t stegr( char jobz, char range, fortran_int_t n, float* d,
- float* e, float vl, float vu, fortran_int_t il, fortran_int_t iu,
- float abstol, fortran_int_t& m, float* w, std::complex<float>* z,
- fortran_int_t ldz, fortran_int_t* isuppz, float* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stegr( const char jobz, const char range,
+ const fortran_int_t n, float* d, float* e, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ const float abstol, fortran_int_t& m, float* w,
+ std::complex<float>* z, const fortran_int_t ldz,
+ fortran_int_t* isuppz, float* work, const fortran_int_t lwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CSTEGR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &m,
             w, z, &ldz, isuppz, work, &lwork, iwork, &liwork, &info );
@@ -101,11 +107,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t stegr( char jobz, char range, fortran_int_t n, double* d,
- double* e, double vl, double vu, fortran_int_t il, fortran_int_t iu,
- double abstol, fortran_int_t& m, double* w, std::complex<double>* z,
- fortran_int_t ldz, fortran_int_t* isuppz, double* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stegr( const char jobz, const char range,
+ const fortran_int_t n, double* d, double* e, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w,
+ std::complex<double>* z, const fortran_int_t ldz,
+ fortran_int_t* isuppz, double* work, const fortran_int_t lwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZSTEGR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &m,
             w, z, &ldz, isuppz, work, &lwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stein.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stein.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stein.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stein( fortran_int_t n, const float* d, const float* e,
- fortran_int_t m, const float* w, const fortran_int_t* iblock,
- const fortran_int_t* isplit, float* z, fortran_int_t ldz, float* work,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t stein( const fortran_int_t n, const float* d,
+ const float* e, const fortran_int_t m, const float* w,
+ const fortran_int_t* iblock, const fortran_int_t* isplit, float* z,
+ const fortran_int_t ldz, float* work, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_SSTEIN( &n, d, e, &m, w, iblock, isplit, z, &ldz, work, iwork,
             ifail, &info );
@@ -67,10 +68,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stein( fortran_int_t n, const double* d, const double* e,
- fortran_int_t m, const double* w, const fortran_int_t* iblock,
- const fortran_int_t* isplit, double* z, fortran_int_t ldz,
- double* work, fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t stein( const fortran_int_t n, const double* d,
+ const double* e, const fortran_int_t m, const double* w,
+ const fortran_int_t* iblock, const fortran_int_t* isplit, double* z,
+ const fortran_int_t ldz, double* work, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_DSTEIN( &n, d, e, &m, w, iblock, isplit, z, &ldz, work, iwork,
             ifail, &info );
@@ -82,11 +84,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t stein( fortran_int_t n, const float* d, const float* e,
- fortran_int_t m, const float* w, const fortran_int_t* iblock,
- const fortran_int_t* isplit, std::complex<float>* z,
- fortran_int_t ldz, float* work, fortran_int_t* iwork,
- fortran_int_t* ifail ) {
+inline std::ptrdiff_t stein( const fortran_int_t n, const float* d,
+ const float* e, const fortran_int_t m, const float* w,
+ const fortran_int_t* iblock, const fortran_int_t* isplit,
+ std::complex<float>* z, const fortran_int_t ldz, float* work,
+ fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_CSTEIN( &n, d, e, &m, w, iblock, isplit, z, &ldz, work, iwork,
             ifail, &info );
@@ -98,11 +100,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t stein( fortran_int_t n, const double* d, const double* e,
- fortran_int_t m, const double* w, const fortran_int_t* iblock,
- const fortran_int_t* isplit, std::complex<double>* z,
- fortran_int_t ldz, double* work, fortran_int_t* iwork,
- fortran_int_t* ifail ) {
+inline std::ptrdiff_t stein( const fortran_int_t n, const double* d,
+ const double* e, const fortran_int_t m, const double* w,
+ const fortran_int_t* iblock, const fortran_int_t* isplit,
+ std::complex<double>* z, const fortran_int_t ldz, double* work,
+ fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_ZSTEIN( &n, d, e, &m, w, iblock, isplit, z, &ldz, work, iwork,
             ifail, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stemr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stemr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/stemr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,12 +53,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stemr( char jobz, char range, fortran_int_t n, float* d,
- float* e, float vl, float vu, fortran_int_t il, fortran_int_t iu,
- fortran_int_t& m, float* w, float* z, fortran_int_t ldz,
- fortran_int_t nzc, fortran_int_t* isuppz, logical_t& tryrac,
- float* work, fortran_int_t lwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+inline std::ptrdiff_t stemr( const char jobz, const char range,
+ const fortran_int_t n, float* d, float* e, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ fortran_int_t& m, float* w, float* z, const fortran_int_t ldz,
+ const fortran_int_t nzc, fortran_int_t* isuppz, logical_t& tryrac,
+ float* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSTEMR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &m, w, z,
             &ldz, &nzc, isuppz, &tryrac, work, &lwork, iwork, &liwork, &info );
@@ -70,12 +71,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stemr( char jobz, char range, fortran_int_t n, double* d,
- double* e, double vl, double vu, fortran_int_t il, fortran_int_t iu,
- fortran_int_t& m, double* w, double* z, fortran_int_t ldz,
- fortran_int_t nzc, fortran_int_t* isuppz, logical_t& tryrac,
- double* work, fortran_int_t lwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+inline std::ptrdiff_t stemr( const char jobz, const char range,
+ const fortran_int_t n, double* d, double* e, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ fortran_int_t& m, double* w, double* z, const fortran_int_t ldz,
+ const fortran_int_t nzc, fortran_int_t* isuppz, logical_t& tryrac,
+ double* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSTEMR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &m, w, z,
             &ldz, &nzc, isuppz, &tryrac, work, &lwork, iwork, &liwork, &info );
@@ -87,12 +89,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t stemr( char jobz, char range, fortran_int_t n, float* d,
- float* e, float vl, float vu, fortran_int_t il, fortran_int_t iu,
- fortran_int_t& m, float* w, std::complex<float>* z, fortran_int_t ldz,
- fortran_int_t nzc, fortran_int_t* isuppz, logical_t& tryrac,
- float* work, fortran_int_t lwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+inline std::ptrdiff_t stemr( const char jobz, const char range,
+ const fortran_int_t n, float* d, float* e, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ fortran_int_t& m, float* w, std::complex<float>* z,
+ const fortran_int_t ldz, const fortran_int_t nzc,
+ fortran_int_t* isuppz, logical_t& tryrac, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CSTEMR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &m, w, z,
             &ldz, &nzc, isuppz, &tryrac, work, &lwork, iwork, &liwork, &info );
@@ -104,12 +108,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t stemr( char jobz, char range, fortran_int_t n, double* d,
- double* e, double vl, double vu, fortran_int_t il, fortran_int_t iu,
+inline std::ptrdiff_t stemr( const char jobz, const char range,
+ const fortran_int_t n, double* d, double* e, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
         fortran_int_t& m, double* w, std::complex<double>* z,
- fortran_int_t ldz, fortran_int_t nzc, fortran_int_t* isuppz,
- logical_t& tryrac, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+ const fortran_int_t ldz, const fortran_int_t nzc,
+ fortran_int_t* isuppz, logical_t& tryrac, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZSTEMR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &m, w, z,
             &ldz, &nzc, isuppz, &tryrac, work, &lwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/steqr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/steqr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/steqr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,8 +52,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t steqr( char compz, fortran_int_t n, float* d, float* e,
- float* z, fortran_int_t ldz, float* work ) {
+inline std::ptrdiff_t steqr( const char compz, const fortran_int_t n, float* d,
+ float* e, float* z, const fortran_int_t ldz, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSTEQR( &compz, &n, d, e, z, &ldz, work, &info );
     return info;
@@ -64,8 +64,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t steqr( char compz, fortran_int_t n, double* d, double* e,
- double* z, fortran_int_t ldz, double* work ) {
+inline std::ptrdiff_t steqr( const char compz, const fortran_int_t n,
+ double* d, double* e, double* z, const fortran_int_t ldz,
+ double* work ) {
     fortran_int_t info(0);
     LAPACK_DSTEQR( &compz, &n, d, e, z, &ldz, work, &info );
     return info;
@@ -76,8 +77,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t steqr( char compz, fortran_int_t n, float* d, float* e,
- std::complex<float>* z, fortran_int_t ldz, float* work ) {
+inline std::ptrdiff_t steqr( const char compz, const fortran_int_t n, float* d,
+ float* e, std::complex<float>* z, const fortran_int_t ldz,
+ float* work ) {
     fortran_int_t info(0);
     LAPACK_CSTEQR( &compz, &n, d, e, z, &ldz, work, &info );
     return info;
@@ -88,8 +90,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t steqr( char compz, fortran_int_t n, double* d, double* e,
- std::complex<double>* z, fortran_int_t ldz, double* work ) {
+inline std::ptrdiff_t steqr( const char compz, const fortran_int_t n,
+ double* d, double* e, std::complex<double>* z,
+ const fortran_int_t ldz, double* work ) {
     fortran_int_t info(0);
     LAPACK_ZSTEQR( &compz, &n, d, e, z, &ldz, work, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sterf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sterf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sterf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -47,7 +47,7 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t sterf( fortran_int_t n, float* d, float* e ) {
+inline std::ptrdiff_t sterf( const fortran_int_t n, float* d, float* e ) {
     fortran_int_t info(0);
     LAPACK_SSTERF( &n, d, e, &info );
     return info;
@@ -58,7 +58,7 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t sterf( fortran_int_t n, double* d, double* e ) {
+inline std::ptrdiff_t sterf( const fortran_int_t n, double* d, double* e ) {
     fortran_int_t info(0);
     LAPACK_DSTERF( &n, d, e, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sycon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sycon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sycon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t sycon( char uplo, fortran_int_t n, const float* a,
- fortran_int_t lda, const fortran_int_t* ipiv, float anorm,
- float& rcond, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t sycon( const char uplo, const fortran_int_t n,
+ const float* a, const fortran_int_t lda, const fortran_int_t* ipiv,
+ const float anorm, float& rcond, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SSYCON( &uplo, &n, a, &lda, ipiv, &anorm, &rcond, work, iwork,
             &info );
@@ -67,9 +67,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t sycon( char uplo, fortran_int_t n, const double* a,
- fortran_int_t lda, const fortran_int_t* ipiv, double anorm,
- double& rcond, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t sycon( const char uplo, const fortran_int_t n,
+ const double* a, const fortran_int_t lda, const fortran_int_t* ipiv,
+ const double anorm, double& rcond, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DSYCON( &uplo, &n, a, &lda, ipiv, &anorm, &rcond, work, iwork,
             &info );
@@ -81,9 +82,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t sycon( char uplo, fortran_int_t n,
- const std::complex<float>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, float anorm, float& rcond,
+inline std::ptrdiff_t sycon( const char uplo, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, const float anorm, float& rcond,
         std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CSYCON( &uplo, &n, a, &lda, ipiv, &anorm, &rcond, work, &info );
@@ -95,9 +96,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t sycon( char uplo, fortran_int_t n,
- const std::complex<double>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, double anorm, double& rcond,
+inline std::ptrdiff_t sycon( const char uplo, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, const double anorm, double& rcond,
         std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZSYCON( &uplo, &n, a, &lda, ipiv, &anorm, &rcond, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sygst.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sygst.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sygst.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sygst( fortran_int_t itype, UpLo, fortran_int_t n,
- float* a, fortran_int_t lda, const float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t sygst( const fortran_int_t itype, UpLo,
+ const fortran_int_t n, float* a, const fortran_int_t lda,
+ const float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SSYGST( &itype, &lapack_option< UpLo >::value, &n, a, &lda, b,
             &ldb, &info );
@@ -63,8 +64,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sygst( fortran_int_t itype, UpLo, fortran_int_t n,
- double* a, fortran_int_t lda, const double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t sygst( const fortran_int_t itype, UpLo,
+ const fortran_int_t n, double* a, const fortran_int_t lda,
+ const double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DSYGST( &itype, &lapack_option< UpLo >::value, &n, a, &lda, b,
             &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/syrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/syrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/syrfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,11 +54,12 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syrfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const float* a, fortran_int_t lda, const float* af,
- fortran_int_t ldaf, const fortran_int_t* ipiv, const float* b,
- fortran_int_t ldb, float* x, fortran_int_t ldx, float* ferr,
- float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t syrfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* a, const fortran_int_t lda,
+ const float* af, const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float* ferr, float* berr, float* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SSYRFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -71,11 +72,12 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syrfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const double* a, fortran_int_t lda, const double* af,
- fortran_int_t ldaf, const fortran_int_t* ipiv, const double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double* ferr,
- double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t syrfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* a, const fortran_int_t lda,
+ const double* af, const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double* ferr, double* berr, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DSYRFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, iwork, &info );
@@ -88,12 +90,13 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syrfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* af, fortran_int_t ldaf,
- const fortran_int_t* ipiv, const std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* x, fortran_int_t ldx,
- float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t syrfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* af,
+ const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float* ferr,
+ float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CSYRFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, rwork, &info );
@@ -106,13 +109,13 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syrfs( UpLo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* af, fortran_int_t ldaf,
- const fortran_int_t* ipiv, const std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double* ferr, double* berr, std::complex<double>* work,
- double* rwork ) {
+inline std::ptrdiff_t syrfs( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* af,
+ const fortran_int_t ldaf, const fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double* ferr,
+ double* berr, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZSYRFS( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, af,
             &ldaf, ipiv, b, &ldb, x, &ldx, ferr, berr, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sytrd( UpLo, fortran_int_t n, float* a,
- fortran_int_t lda, float* d, float* e, float* tau, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t sytrd( UpLo, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* d, float* e, float* tau, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SSYTRD( &lapack_option< UpLo >::value, &n, a, &lda, d, e, tau,
             work, &lwork, &info );
@@ -67,9 +67,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sytrd( UpLo, fortran_int_t n, double* a,
- fortran_int_t lda, double* d, double* e, double* tau, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t sytrd( UpLo, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* d, double* e, double* tau,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DSYTRD( &lapack_option< UpLo >::value, &n, a, &lda, d, e, tau,
             work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -55,9 +55,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sytrf( UpLo, fortran_int_t n, float* a,
- fortran_int_t lda, fortran_int_t* ipiv, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t sytrf( UpLo, const fortran_int_t n, float* a,
+ const fortran_int_t lda, fortran_int_t* ipiv, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SSYTRF( &lapack_option< UpLo >::value, &n, a, &lda, ipiv, work,
             &lwork, &info );
@@ -70,9 +70,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sytrf( UpLo, fortran_int_t n, double* a,
- fortran_int_t lda, fortran_int_t* ipiv, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t sytrf( UpLo, const fortran_int_t n, double* a,
+ const fortran_int_t lda, fortran_int_t* ipiv, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DSYTRF( &lapack_option< UpLo >::value, &n, a, &lda, ipiv, work,
             &lwork, &info );
@@ -85,9 +85,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sytrf( UpLo, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, fortran_int_t* ipiv, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t sytrf( UpLo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, fortran_int_t* ipiv,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CSYTRF( &lapack_option< UpLo >::value, &n, a, &lda, ipiv, work,
             &lwork, &info );
@@ -100,9 +100,9 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sytrf( UpLo, fortran_int_t n, std::complex<double>* a,
- fortran_int_t lda, fortran_int_t* ipiv, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t sytrf( UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, fortran_int_t* ipiv,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZSYTRF( &lapack_option< UpLo >::value, &n, a, &lda, ipiv, work,
             &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytri.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytri.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytri.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,8 +53,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t sytri( char uplo, fortran_int_t n, float* a,
- fortran_int_t lda, const fortran_int_t* ipiv, float* work ) {
+inline std::ptrdiff_t sytri( const char uplo, const fortran_int_t n, float* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSYTRI( &uplo, &n, a, &lda, ipiv, work, &info );
     return info;
@@ -65,8 +65,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t sytri( char uplo, fortran_int_t n, double* a,
- fortran_int_t lda, const fortran_int_t* ipiv, double* work ) {
+inline std::ptrdiff_t sytri( const char uplo, const fortran_int_t n, double* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv, double* work ) {
     fortran_int_t info(0);
     LAPACK_DSYTRI( &uplo, &n, a, &lda, ipiv, work, &info );
     return info;
@@ -77,9 +77,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t sytri( char uplo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, const fortran_int_t* ipiv,
- std::complex<float>* work ) {
+inline std::ptrdiff_t sytri( const char uplo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CSYTRI( &uplo, &n, a, &lda, ipiv, work, &info );
     return info;
@@ -90,9 +90,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t sytri( char uplo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, const fortran_int_t* ipiv,
- std::complex<double>* work ) {
+inline std::ptrdiff_t sytri( const char uplo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZSYTRI( &uplo, &n, a, &lda, ipiv, work, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/sytrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -48,9 +48,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t sytrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const float* a, fortran_int_t lda, const fortran_int_t* ipiv,
- float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t sytrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SSYTRS( &uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
     return info;
@@ -61,9 +61,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t sytrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const double* a, fortran_int_t lda, const fortran_int_t* ipiv,
- double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t sytrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* a, const fortran_int_t lda,
+ const fortran_int_t* ipiv, double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DSYTRS( &uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
     return info;
@@ -74,10 +74,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t sytrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<float>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t sytrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CSYTRS( &uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
     return info;
@@ -88,10 +88,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t sytrs( char uplo, fortran_int_t n, fortran_int_t nrhs,
- const std::complex<double>* a, fortran_int_t lda,
- const fortran_int_t* ipiv, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t sytrs( const char uplo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, const fortran_int_t* ipiv,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZSYTRS( &uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbcon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -55,9 +55,10 @@
 // * float value-type.
 //
 template< typename Diag >
-inline std::ptrdiff_t tbcon( char norm, char uplo, Diag, fortran_int_t n,
- fortran_int_t kd, const float* ab, fortran_int_t ldab, float& rcond,
- float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t tbcon( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const fortran_int_t kd, const float* ab,
+ const fortran_int_t ldab, float& rcond, float* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_STBCON( &norm, &uplo, &lapack_option< Diag >::value, &n, &kd, ab,
             &ldab, &rcond, work, iwork, &info );
@@ -70,9 +71,10 @@
 // * double value-type.
 //
 template< typename Diag >
-inline std::ptrdiff_t tbcon( char norm, char uplo, Diag, fortran_int_t n,
- fortran_int_t kd, const double* ab, fortran_int_t ldab, double& rcond,
- double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t tbcon( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const fortran_int_t kd, const double* ab,
+ const fortran_int_t ldab, double& rcond, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DTBCON( &norm, &uplo, &lapack_option< Diag >::value, &n, &kd, ab,
             &ldab, &rcond, work, iwork, &info );
@@ -85,9 +87,10 @@
 // * complex<float> value-type.
 //
 template< typename Diag >
-inline std::ptrdiff_t tbcon( char norm, char uplo, Diag, fortran_int_t n,
- fortran_int_t kd, const std::complex<float>* ab, fortran_int_t ldab,
- float& rcond, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t tbcon( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const std::complex<float>* ab, const fortran_int_t ldab, float& rcond,
+ std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CTBCON( &norm, &uplo, &lapack_option< Diag >::value, &n, &kd, ab,
             &ldab, &rcond, work, rwork, &info );
@@ -100,8 +103,9 @@
 // * complex<double> value-type.
 //
 template< typename Diag >
-inline std::ptrdiff_t tbcon( char norm, char uplo, Diag, fortran_int_t n,
- fortran_int_t kd, const std::complex<double>* ab, fortran_int_t ldab,
+inline std::ptrdiff_t tbcon( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const std::complex<double>* ab, const fortran_int_t ldab,
         double& rcond, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZTBCON( &norm, &uplo, &lapack_option< Diag >::value, &n, &kd, ab,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbrfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -56,10 +56,11 @@
 // * float value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tbrfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, const float* ab,
- fortran_int_t ldab, const float* b, fortran_int_t ldb, const float* x,
- fortran_int_t ldx, float* ferr, float* berr, float* work,
+inline std::ptrdiff_t tbrfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const fortran_int_t nrhs, const float* ab, const fortran_int_t ldab,
+ const float* b, const fortran_int_t ldb, const float* x,
+ const fortran_int_t ldx, float* ferr, float* berr, float* work,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_STBRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
@@ -74,11 +75,12 @@
 // * double value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tbrfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, const double* ab,
- fortran_int_t ldab, const double* b, fortran_int_t ldb,
- const double* x, fortran_int_t ldx, double* ferr, double* berr,
- double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t tbrfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const fortran_int_t nrhs, const double* ab, const fortran_int_t ldab,
+ const double* b, const fortran_int_t ldb, const double* x,
+ const fortran_int_t ldx, double* ferr, double* berr, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DTBRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &kd, &nrhs, ab, &ldab, b, &ldb, x, &ldx, ferr,
@@ -92,11 +94,13 @@
 // * complex<float> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tbrfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, const std::complex<float>* ab,
- fortran_int_t ldab, const std::complex<float>* b, fortran_int_t ldb,
- const std::complex<float>* x, fortran_int_t ldx, float* ferr,
- float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t tbrfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const fortran_int_t nrhs, const std::complex<float>* ab,
+ const fortran_int_t ldab, const std::complex<float>* b,
+ const fortran_int_t ldb, const std::complex<float>* x,
+ const fortran_int_t ldx, float* ferr, float* berr,
+ std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CTBRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &kd, &nrhs, ab, &ldab, b, &ldb, x, &ldx, ferr,
@@ -110,11 +114,13 @@
 // * complex<double> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tbrfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, const std::complex<double>* ab,
- fortran_int_t ldab, const std::complex<double>* b, fortran_int_t ldb,
- const std::complex<double>* x, fortran_int_t ldx, double* ferr,
- double* berr, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t tbrfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const fortran_int_t nrhs, const std::complex<double>* ab,
+ const fortran_int_t ldab, const std::complex<double>* b,
+ const fortran_int_t ldb, const std::complex<double>* x,
+ const fortran_int_t ldx, double* ferr, double* berr,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZTBRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &kd, &nrhs, ab, &ldab, b, &ldb, x, &ldx, ferr,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbtrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tbtrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,10 @@
 // * float value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tbtrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, const float* ab,
- fortran_int_t ldab, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t tbtrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const fortran_int_t nrhs, const float* ab, const fortran_int_t ldab,
+ float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_STBTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info );
@@ -66,9 +67,10 @@
 // * double value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tbtrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, const double* ab,
- fortran_int_t ldab, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t tbtrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const fortran_int_t nrhs, const double* ab, const fortran_int_t ldab,
+ double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DTBTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info );
@@ -81,9 +83,11 @@
 // * complex<float> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tbtrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, const std::complex<float>* ab,
- fortran_int_t ldab, std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t tbtrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const fortran_int_t nrhs, const std::complex<float>* ab,
+ const fortran_int_t ldab, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CTBTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info );
@@ -96,9 +100,11 @@
 // * complex<double> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tbtrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, const std::complex<double>* ab,
- fortran_int_t ldab, std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t tbtrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t kd,
+ const fortran_int_t nrhs, const std::complex<double>* ab,
+ const fortran_int_t ldab, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZTBTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tftri.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tftri.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tftri.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,8 +50,8 @@
 // * float value-type.
 //
 template< typename TransR, typename Diag >
-inline std::ptrdiff_t tftri( TransR, char uplo, Diag, fortran_int_t n,
- float* a ) {
+inline std::ptrdiff_t tftri( TransR, const char uplo, Diag,
+ const fortran_int_t n, float* a ) {
     fortran_int_t info(0);
     LAPACK_STFTRI( &lapack_option< TransR >::value, &uplo, &lapack_option<
             Diag >::value, &n, a, &info );
@@ -64,8 +64,8 @@
 // * double value-type.
 //
 template< typename TransR, typename Diag >
-inline std::ptrdiff_t tftri( TransR, char uplo, Diag, fortran_int_t n,
- double* a ) {
+inline std::ptrdiff_t tftri( TransR, const char uplo, Diag,
+ const fortran_int_t n, double* a ) {
     fortran_int_t info(0);
     LAPACK_DTFTRI( &lapack_option< TransR >::value, &uplo, &lapack_option<
             Diag >::value, &n, a, &info );
@@ -78,8 +78,8 @@
 // * complex<float> value-type.
 //
 template< typename TransR, typename Diag >
-inline std::ptrdiff_t tftri( TransR, char uplo, Diag, fortran_int_t n,
- std::complex<float>* a ) {
+inline std::ptrdiff_t tftri( TransR, const char uplo, Diag,
+ const fortran_int_t n, std::complex<float>* a ) {
     fortran_int_t info(0);
     LAPACK_CTFTRI( &lapack_option< TransR >::value, &uplo, &lapack_option<
             Diag >::value, &n, a, &info );
@@ -92,8 +92,8 @@
 // * complex<double> value-type.
 //
 template< typename TransR, typename Diag >
-inline std::ptrdiff_t tftri( TransR, char uplo, Diag, fortran_int_t n,
- std::complex<double>* a ) {
+inline std::ptrdiff_t tftri( TransR, const char uplo, Diag,
+ const fortran_int_t n, std::complex<double>* a ) {
     fortran_int_t info(0);
     LAPACK_ZTFTRI( &lapack_option< TransR >::value, &uplo, &lapack_option<
             Diag >::value, &n, a, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgevc.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t tgevc( char side, char howmny, const logical_t* select,
- fortran_int_t n, const float* s, fortran_int_t lds, const float* p,
- fortran_int_t ldp, float* vl, fortran_int_t ldvl, float* vr,
- fortran_int_t ldvr, fortran_int_t mm, fortran_int_t& m, float* work ) {
+inline std::ptrdiff_t tgevc( const char side, const char howmny,
+ const logical_t* select, const fortran_int_t n, const float* s,
+ const fortran_int_t lds, const float* p, const fortran_int_t ldp,
+ float* vl, const fortran_int_t ldvl, float* vr,
+ const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
+ float* work ) {
     fortran_int_t info(0);
     LAPACK_STGEVC( &side, &howmny, select, &n, s, &lds, p, &ldp, vl, &ldvl,
             vr, &ldvr, &mm, &m, work, &info );
@@ -67,10 +69,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t tgevc( char side, char howmny, const logical_t* select,
- fortran_int_t n, const double* s, fortran_int_t lds, const double* p,
- fortran_int_t ldp, double* vl, fortran_int_t ldvl, double* vr,
- fortran_int_t ldvr, fortran_int_t mm, fortran_int_t& m,
+inline std::ptrdiff_t tgevc( const char side, const char howmny,
+ const logical_t* select, const fortran_int_t n, const double* s,
+ const fortran_int_t lds, const double* p, const fortran_int_t ldp,
+ double* vl, const fortran_int_t ldvl, double* vr,
+ const fortran_int_t ldvr, const fortran_int_t mm, fortran_int_t& m,
         double* work ) {
     fortran_int_t info(0);
     LAPACK_DTGEVC( &side, &howmny, select, &n, s, &lds, p, &ldp, vl, &ldvl,
@@ -83,12 +86,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t tgevc( char side, char howmny, const logical_t* select,
- fortran_int_t n, const std::complex<float>* s, fortran_int_t lds,
- const std::complex<float>* p, fortran_int_t ldp,
- std::complex<float>* vl, fortran_int_t ldvl, std::complex<float>* vr,
- fortran_int_t ldvr, fortran_int_t mm, fortran_int_t& m,
- std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t tgevc( const char side, const char howmny,
+ const logical_t* select, const fortran_int_t n,
+ const std::complex<float>* s, const fortran_int_t lds,
+ const std::complex<float>* p, const fortran_int_t ldp,
+ std::complex<float>* vl, const fortran_int_t ldvl,
+ std::complex<float>* vr, const fortran_int_t ldvr,
+ const fortran_int_t mm, fortran_int_t& m, std::complex<float>* work,
+ float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CTGEVC( &side, &howmny, select, &n, s, &lds, p, &ldp, vl, &ldvl,
             vr, &ldvr, &mm, &m, work, rwork, &info );
@@ -100,12 +105,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t tgevc( char side, char howmny, const logical_t* select,
- fortran_int_t n, const std::complex<double>* s, fortran_int_t lds,
- const std::complex<double>* p, fortran_int_t ldp,
- std::complex<double>* vl, fortran_int_t ldvl,
- std::complex<double>* vr, fortran_int_t ldvr, fortran_int_t mm,
- fortran_int_t& m, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t tgevc( const char side, const char howmny,
+ const logical_t* select, const fortran_int_t n,
+ const std::complex<double>* s, const fortran_int_t lds,
+ const std::complex<double>* p, const fortran_int_t ldp,
+ std::complex<double>* vl, const fortran_int_t ldvl,
+ std::complex<double>* vr, const fortran_int_t ldvr,
+ const fortran_int_t mm, fortran_int_t& m, std::complex<double>* work,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZTGEVC( &side, &howmny, select, &n, s, &lds, p, &ldp, vl, &ldvl,
             vr, &ldvr, &mm, &m, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgexc.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t tgexc( logical_t wantq, logical_t wantz, fortran_int_t n,
- float* a, fortran_int_t lda, float* b, fortran_int_t ldb, float* q,
- fortran_int_t ldq, float* z, fortran_int_t ldz, fortran_int_t& ifst,
- fortran_int_t& ilst, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* q, const fortran_int_t ldq, float* z,
+ const fortran_int_t ldz, fortran_int_t& ifst, fortran_int_t& ilst,
+ float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_STGEXC( &wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz,
             &ifst, &ilst, work, &lwork, &info );
@@ -68,10 +69,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t tgexc( logical_t wantq, logical_t wantz, fortran_int_t n,
- double* a, fortran_int_t lda, double* b, fortran_int_t ldb, double* q,
- fortran_int_t ldq, double* z, fortran_int_t ldz, fortran_int_t& ifst,
- fortran_int_t& ilst, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
+ const fortran_int_t n, double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, double* q, const fortran_int_t ldq,
+ double* z, const fortran_int_t ldz, fortran_int_t& ifst,
+ fortran_int_t& ilst, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DTGEXC( &wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz,
             &ifst, &ilst, work, &lwork, &info );
@@ -83,10 +85,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t tgexc( logical_t wantq, logical_t wantz, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* q, fortran_int_t ldq,
- std::complex<float>* z, fortran_int_t ldz, fortran_int_t ifst,
+inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* q,
+ const fortran_int_t ldq, std::complex<float>* z,
+ const fortran_int_t ldz, const fortran_int_t ifst,
         fortran_int_t& ilst ) {
     fortran_int_t info(0);
     LAPACK_CTGEXC( &wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz,
@@ -99,10 +103,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t tgexc( logical_t wantq, logical_t wantz, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* q, fortran_int_t ldq,
- std::complex<double>* z, fortran_int_t ldz, fortran_int_t ifst,
+inline std::ptrdiff_t tgexc( const logical_t wantq, const logical_t wantz,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* q,
+ const fortran_int_t ldq, std::complex<double>* z,
+ const fortran_int_t ldz, const fortran_int_t ifst,
         fortran_int_t& ilst ) {
     fortran_int_t info(0);
     LAPACK_ZTGEXC( &wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsen.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,13 +53,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t tgsen( fortran_int_t ijob, logical_t wantq,
- logical_t wantz, const logical_t* select, fortran_int_t n, float* a,
- fortran_int_t lda, float* b, fortran_int_t ldb, float* alphar,
- float* alphai, float* beta, float* q, fortran_int_t ldq, float* z,
- fortran_int_t ldz, fortran_int_t& m, float& pl, float& pr, float* dif,
- float* work, fortran_int_t lwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+inline std::ptrdiff_t tgsen( const fortran_int_t ijob, const logical_t wantq,
+ const logical_t wantz, const logical_t* select, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* b, const fortran_int_t ldb,
+ float* alphar, float* alphai, float* beta, float* q,
+ const fortran_int_t ldq, float* z, const fortran_int_t ldz,
+ fortran_int_t& m, float& pl, float& pr, float* dif, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_STGSEN( &ijob, &wantq, &wantz, select, &n, a, &lda, b, &ldb,
             alphar, alphai, beta, q, &ldq, z, &ldz, &m, &pl, &pr, dif, work,
@@ -72,13 +73,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t tgsen( fortran_int_t ijob, logical_t wantq,
- logical_t wantz, const logical_t* select, fortran_int_t n, double* a,
- fortran_int_t lda, double* b, fortran_int_t ldb, double* alphar,
- double* alphai, double* beta, double* q, fortran_int_t ldq, double* z,
- fortran_int_t ldz, fortran_int_t& m, double& pl, double& pr,
- double* dif, double* work, fortran_int_t lwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+inline std::ptrdiff_t tgsen( const fortran_int_t ijob, const logical_t wantq,
+ const logical_t wantz, const logical_t* select, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, double* alphar, double* alphai, double* beta,
+ double* q, const fortran_int_t ldq, double* z,
+ const fortran_int_t ldz, fortran_int_t& m, double& pl, double& pr,
+ double* dif, double* work, const fortran_int_t lwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DTGSEN( &ijob, &wantq, &wantz, select, &n, a, &lda, b, &ldb,
             alphar, alphai, beta, q, &ldq, z, &ldz, &m, &pl, &pr, dif, work,
@@ -91,14 +93,16 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t tgsen( fortran_int_t ijob, logical_t wantq,
- logical_t wantz, const logical_t* select, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* alpha,
- std::complex<float>* beta, std::complex<float>* q, fortran_int_t ldq,
- std::complex<float>* z, fortran_int_t ldz, fortran_int_t& m,
+inline std::ptrdiff_t tgsen( const fortran_int_t ijob, const logical_t wantq,
+ const logical_t wantz, const logical_t* select, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* alpha, std::complex<float>* beta,
+ std::complex<float>* q, const fortran_int_t ldq,
+ std::complex<float>* z, const fortran_int_t ldz, fortran_int_t& m,
         float& pl, float& pr, float* dif, std::complex<float>* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CTGSEN( &ijob, &wantq, &wantz, select, &n, a, &lda, b, &ldb, alpha,
             beta, q, &ldq, z, &ldz, &m, &pl, &pr, dif, work, &lwork, iwork,
@@ -111,15 +115,16 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t tgsen( fortran_int_t ijob, logical_t wantq,
- logical_t wantz, const logical_t* select, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* alpha,
- std::complex<double>* beta, std::complex<double>* q,
- fortran_int_t ldq, std::complex<double>* z, fortran_int_t ldz,
- fortran_int_t& m, double& pl, double& pr, double* dif,
- std::complex<double>* work, fortran_int_t lwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+inline std::ptrdiff_t tgsen( const fortran_int_t ijob, const logical_t wantq,
+ const logical_t wantz, const logical_t* select, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* alpha, std::complex<double>* beta,
+ std::complex<double>* q, const fortran_int_t ldq,
+ std::complex<double>* z, const fortran_int_t ldz, fortran_int_t& m,
+ double& pl, double& pr, double* dif, std::complex<double>* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZTGSEN( &ijob, &wantq, &wantz, select, &n, a, &lda, b, &ldb, alpha,
             beta, q, &ldq, z, &ldz, &m, &pl, &pr, dif, work, &lwork, iwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsja.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t tgsja( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t p, fortran_int_t n, fortran_int_t k, fortran_int_t l,
- float* a, fortran_int_t lda, float* b, fortran_int_t ldb, float tola,
- float tolb, float* alpha, float* beta, float* u, fortran_int_t ldu,
- float* v, fortran_int_t ldv, float* q, fortran_int_t ldq, float* work,
+inline std::ptrdiff_t tgsja( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t p, const fortran_int_t n,
+ const fortran_int_t k, const fortran_int_t l, float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb,
+ const float tola, const float tolb, float* alpha, float* beta,
+ float* u, const fortran_int_t ldu, float* v, const fortran_int_t ldv,
+ float* q, const fortran_int_t ldq, float* work,
         fortran_int_t& ncycle ) {
     fortran_int_t info(0);
     LAPACK_STGSJA( &jobu, &jobv, &jobq, &m, &p, &n, &k, &l, a, &lda, b, &ldb,
@@ -70,12 +72,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t tgsja( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t p, fortran_int_t n, fortran_int_t k, fortran_int_t l,
- double* a, fortran_int_t lda, double* b, fortran_int_t ldb,
- double tola, double tolb, double* alpha, double* beta, double* u,
- fortran_int_t ldu, double* v, fortran_int_t ldv, double* q,
- fortran_int_t ldq, double* work, fortran_int_t& ncycle ) {
+inline std::ptrdiff_t tgsja( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t p, const fortran_int_t n,
+ const fortran_int_t k, const fortran_int_t l, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ const double tola, const double tolb, double* alpha, double* beta,
+ double* u, const fortran_int_t ldu, double* v,
+ const fortran_int_t ldv, double* q, const fortran_int_t ldq,
+ double* work, fortran_int_t& ncycle ) {
     fortran_int_t info(0);
     LAPACK_DTGSJA( &jobu, &jobv, &jobq, &m, &p, &n, &k, &l, a, &lda, b, &ldb,
             &tola, &tolb, alpha, beta, u, &ldu, v, &ldv, q, &ldq, work,
@@ -88,13 +92,16 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t tgsja( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t p, fortran_int_t n, fortran_int_t k, fortran_int_t l,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, float tola, float tolb, float* alpha, float* beta,
- std::complex<float>* u, fortran_int_t ldu, std::complex<float>* v,
- fortran_int_t ldv, std::complex<float>* q, fortran_int_t ldq,
- std::complex<float>* work, fortran_int_t& ncycle ) {
+inline std::ptrdiff_t tgsja( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t p, const fortran_int_t n,
+ const fortran_int_t k, const fortran_int_t l, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, const float tola, const float tolb,
+ float* alpha, float* beta, std::complex<float>* u,
+ const fortran_int_t ldu, std::complex<float>* v,
+ const fortran_int_t ldv, std::complex<float>* q,
+ const fortran_int_t ldq, std::complex<float>* work,
+ fortran_int_t& ncycle ) {
     fortran_int_t info(0);
     LAPACK_CTGSJA( &jobu, &jobv, &jobq, &m, &p, &n, &k, &l, a, &lda, b, &ldb,
             &tola, &tolb, alpha, beta, u, &ldu, v, &ldv, q, &ldq, work,
@@ -107,13 +114,15 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t tgsja( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t p, fortran_int_t n, fortran_int_t k, fortran_int_t l,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, double tola, double tolb, double* alpha,
- double* beta, std::complex<double>* u, fortran_int_t ldu,
- std::complex<double>* v, fortran_int_t ldv, std::complex<double>* q,
- fortran_int_t ldq, std::complex<double>* work,
+inline std::ptrdiff_t tgsja( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t p, const fortran_int_t n,
+ const fortran_int_t k, const fortran_int_t l, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, const double tola, const double tolb,
+ double* alpha, double* beta, std::complex<double>* u,
+ const fortran_int_t ldu, std::complex<double>* v,
+ const fortran_int_t ldv, std::complex<double>* q,
+ const fortran_int_t ldq, std::complex<double>* work,
         fortran_int_t& ncycle ) {
     fortran_int_t info(0);
     LAPACK_ZTGSJA( &jobu, &jobv, &jobq, &m, &p, &n, &k, &l, a, &lda, b, &ldb,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsna.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsna.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsna.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,12 +53,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t tgsna( char job, char howmny, const logical_t* select,
- fortran_int_t n, const float* a, fortran_int_t lda, const float* b,
- fortran_int_t ldb, const float* vl, fortran_int_t ldvl,
- const float* vr, fortran_int_t ldvr, float* s, float* dif,
- fortran_int_t mm, fortran_int_t& m, float* work, fortran_int_t lwork,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t tgsna( const char job, const char howmny,
+ const logical_t* select, const fortran_int_t n, const float* a,
+ const fortran_int_t lda, const float* b, const fortran_int_t ldb,
+ const float* vl, const fortran_int_t ldvl, const float* vr,
+ const fortran_int_t ldvr, float* s, float* dif,
+ const fortran_int_t mm, fortran_int_t& m, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_STGSNA( &job, &howmny, select, &n, a, &lda, b, &ldb, vl, &ldvl, vr,
             &ldvr, s, dif, &mm, &m, work, &lwork, iwork, &info );
@@ -70,12 +71,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t tgsna( char job, char howmny, const logical_t* select,
- fortran_int_t n, const double* a, fortran_int_t lda, const double* b,
- fortran_int_t ldb, const double* vl, fortran_int_t ldvl,
- const double* vr, fortran_int_t ldvr, double* s, double* dif,
- fortran_int_t mm, fortran_int_t& m, double* work, fortran_int_t lwork,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t tgsna( const char job, const char howmny,
+ const logical_t* select, const fortran_int_t n, const double* a,
+ const fortran_int_t lda, const double* b, const fortran_int_t ldb,
+ const double* vl, const fortran_int_t ldvl, const double* vr,
+ const fortran_int_t ldvr, double* s, double* dif,
+ const fortran_int_t mm, fortran_int_t& m, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DTGSNA( &job, &howmny, select, &n, a, &lda, b, &ldb, vl, &ldvl, vr,
             &ldvr, s, dif, &mm, &m, work, &lwork, iwork, &info );
@@ -87,13 +89,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t tgsna( char job, char howmny, const logical_t* select,
- fortran_int_t n, const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* b, fortran_int_t ldb,
- const std::complex<float>* vl, fortran_int_t ldvl,
- const std::complex<float>* vr, fortran_int_t ldvr, float* s,
- float* dif, fortran_int_t mm, fortran_int_t& m,
- std::complex<float>* work, fortran_int_t lwork,
+inline std::ptrdiff_t tgsna( const char job, const char howmny,
+ const logical_t* select, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ const std::complex<float>* vl, const fortran_int_t ldvl,
+ const std::complex<float>* vr, const fortran_int_t ldvr, float* s,
+ float* dif, const fortran_int_t mm, fortran_int_t& m,
+ std::complex<float>* work, const fortran_int_t lwork,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_CTGSNA( &job, &howmny, select, &n, a, &lda, b, &ldb, vl, &ldvl, vr,
@@ -106,13 +109,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t tgsna( char job, char howmny, const logical_t* select,
- fortran_int_t n, const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* b, fortran_int_t ldb,
- const std::complex<double>* vl, fortran_int_t ldvl,
- const std::complex<double>* vr, fortran_int_t ldvr, double* s,
- double* dif, fortran_int_t mm, fortran_int_t& m,
- std::complex<double>* work, fortran_int_t lwork,
+inline std::ptrdiff_t tgsna( const char job, const char howmny,
+ const logical_t* select, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ const std::complex<double>* vl, const fortran_int_t ldvl,
+ const std::complex<double>* vr, const fortran_int_t ldvr, double* s,
+ double* dif, const fortran_int_t mm, fortran_int_t& m,
+ std::complex<double>* work, const fortran_int_t lwork,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_ZTGSNA( &job, &howmny, select, &n, a, &lda, b, &ldb, vl, &ldvl, vr,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tgsyl.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -55,12 +55,13 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t tgsyl( Trans, fortran_int_t ijob, fortran_int_t m,
- fortran_int_t n, const float* a, fortran_int_t lda, const float* b,
- fortran_int_t ldb, float* c, fortran_int_t ldc, const float* d,
- fortran_int_t ldd, const float* e, fortran_int_t lde, float* f,
- fortran_int_t ldf, float& scale, float& dif, float* work,
- fortran_int_t lwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t tgsyl( Trans, const fortran_int_t ijob,
+ const fortran_int_t m, const fortran_int_t n, const float* a,
+ const fortran_int_t lda, const float* b, const fortran_int_t ldb,
+ float* c, const fortran_int_t ldc, const float* d,
+ const fortran_int_t ldd, const float* e, const fortran_int_t lde,
+ float* f, const fortran_int_t ldf, float& scale, float& dif,
+ float* work, const fortran_int_t lwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_STGSYL( &lapack_option< Trans >::value, &ijob, &m, &n, a, &lda, b,
             &ldb, c, &ldc, d, &ldd, e, &lde, f, &ldf, &scale, &dif, work,
@@ -74,12 +75,13 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t tgsyl( Trans, fortran_int_t ijob, fortran_int_t m,
- fortran_int_t n, const double* a, fortran_int_t lda, const double* b,
- fortran_int_t ldb, double* c, fortran_int_t ldc, const double* d,
- fortran_int_t ldd, const double* e, fortran_int_t lde, double* f,
- fortran_int_t ldf, double& scale, double& dif, double* work,
- fortran_int_t lwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t tgsyl( Trans, const fortran_int_t ijob,
+ const fortran_int_t m, const fortran_int_t n, const double* a,
+ const fortran_int_t lda, const double* b, const fortran_int_t ldb,
+ double* c, const fortran_int_t ldc, const double* d,
+ const fortran_int_t ldd, const double* e, const fortran_int_t lde,
+ double* f, const fortran_int_t ldf, double& scale, double& dif,
+ double* work, const fortran_int_t lwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DTGSYL( &lapack_option< Trans >::value, &ijob, &m, &n, a, &lda, b,
             &ldb, c, &ldc, d, &ldd, e, &lde, f, &ldf, &scale, &dif, work,
@@ -93,14 +95,15 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t tgsyl( Trans, fortran_int_t ijob, fortran_int_t m,
- fortran_int_t n, const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* c, fortran_int_t ldc,
- const std::complex<float>* d, fortran_int_t ldd,
- const std::complex<float>* e, fortran_int_t lde,
- std::complex<float>* f, fortran_int_t ldf, float& scale, float& dif,
- std::complex<float>* work, fortran_int_t lwork,
+inline std::ptrdiff_t tgsyl( Trans, const fortran_int_t ijob,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* c, const fortran_int_t ldc,
+ const std::complex<float>* d, const fortran_int_t ldd,
+ const std::complex<float>* e, const fortran_int_t lde,
+ std::complex<float>* f, const fortran_int_t ldf, float& scale,
+ float& dif, std::complex<float>* work, const fortran_int_t lwork,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_CTGSYL( &lapack_option< Trans >::value, &ijob, &m, &n, a, &lda, b,
@@ -115,14 +118,15 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t tgsyl( Trans, fortran_int_t ijob, fortran_int_t m,
- fortran_int_t n, const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* c, fortran_int_t ldc,
- const std::complex<double>* d, fortran_int_t ldd,
- const std::complex<double>* e, fortran_int_t lde,
- std::complex<double>* f, fortran_int_t ldf, double& scale,
- double& dif, std::complex<double>* work, fortran_int_t lwork,
+inline std::ptrdiff_t tgsyl( Trans, const fortran_int_t ijob,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* c, const fortran_int_t ldc,
+ const std::complex<double>* d, const fortran_int_t ldd,
+ const std::complex<double>* e, const fortran_int_t lde,
+ std::complex<double>* f, const fortran_int_t ldf, double& scale,
+ double& dif, std::complex<double>* work, const fortran_int_t lwork,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_ZTGSYL( &lapack_option< Trans >::value, &ijob, &m, &n, a, &lda, b,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tprfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tprfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tprfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -56,10 +56,11 @@
 // * float value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tprfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const float* ap, const float* b,
- fortran_int_t ldb, const float* x, fortran_int_t ldx, float* ferr,
- float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t tprfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs, const float* ap,
+ const float* b, const fortran_int_t ldb, const float* x,
+ const fortran_int_t ldx, float* ferr, float* berr, float* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_STPRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, ap, b, &ldb, x, &ldx, ferr, berr, work,
@@ -73,10 +74,11 @@
 // * double value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tprfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const double* ap, const double* b,
- fortran_int_t ldb, const double* x, fortran_int_t ldx, double* ferr,
- double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t tprfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs, const double* ap,
+ const double* b, const fortran_int_t ldb, const double* x,
+ const fortran_int_t ldx, double* ferr, double* berr, double* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DTPRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, ap, b, &ldb, x, &ldx, ferr, berr, work,
@@ -90,11 +92,12 @@
 // * complex<float> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tprfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* ap,
- const std::complex<float>* b, fortran_int_t ldb,
- const std::complex<float>* x, fortran_int_t ldx, float* ferr,
- float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t tprfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ const std::complex<float>* ap, const std::complex<float>* b,
+ const fortran_int_t ldb, const std::complex<float>* x,
+ const fortran_int_t ldx, float* ferr, float* berr,
+ std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CTPRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, ap, b, &ldb, x, &ldx, ferr, berr, work,
@@ -108,11 +111,12 @@
 // * complex<double> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tprfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* ap,
- const std::complex<double>* b, fortran_int_t ldb,
- const std::complex<double>* x, fortran_int_t ldx, double* ferr,
- double* berr, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t tprfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ const std::complex<double>* ap, const std::complex<double>* b,
+ const fortran_int_t ldb, const std::complex<double>* x,
+ const fortran_int_t ldx, double* ferr, double* berr,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZTPRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, ap, b, &ldb, x, &ldx, ferr, berr, work,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tptri.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tptri.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tptri.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,7 +50,7 @@
 // * float value-type.
 //
 template< typename UpLo, typename Diag >
-inline std::ptrdiff_t tptri( UpLo, Diag, fortran_int_t n, float* ap ) {
+inline std::ptrdiff_t tptri( UpLo, Diag, const fortran_int_t n, float* ap ) {
     fortran_int_t info(0);
     LAPACK_STPTRI( &lapack_option< UpLo >::value, &lapack_option<
             Diag >::value, &n, ap, &info );
@@ -63,7 +63,7 @@
 // * double value-type.
 //
 template< typename UpLo, typename Diag >
-inline std::ptrdiff_t tptri( UpLo, Diag, fortran_int_t n, double* ap ) {
+inline std::ptrdiff_t tptri( UpLo, Diag, const fortran_int_t n, double* ap ) {
     fortran_int_t info(0);
     LAPACK_DTPTRI( &lapack_option< UpLo >::value, &lapack_option<
             Diag >::value, &n, ap, &info );
@@ -76,7 +76,7 @@
 // * complex<float> value-type.
 //
 template< typename UpLo, typename Diag >
-inline std::ptrdiff_t tptri( UpLo, Diag, fortran_int_t n,
+inline std::ptrdiff_t tptri( UpLo, Diag, const fortran_int_t n,
         std::complex<float>* ap ) {
     fortran_int_t info(0);
     LAPACK_CTPTRI( &lapack_option< UpLo >::value, &lapack_option<
@@ -90,7 +90,7 @@
 // * complex<double> value-type.
 //
 template< typename UpLo, typename Diag >
-inline std::ptrdiff_t tptri( UpLo, Diag, fortran_int_t n,
+inline std::ptrdiff_t tptri( UpLo, Diag, const fortran_int_t n,
         std::complex<double>* ap ) {
     fortran_int_t info(0);
     LAPACK_ZTPTRI( &lapack_option< UpLo >::value, &lapack_option<

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tptrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tptrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tptrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,8 +51,9 @@
 // * float value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tptrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const float* ap, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t tptrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs, const float* ap,
+ float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_STPTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, ap, b, &ldb, &info );
@@ -65,8 +66,9 @@
 // * double value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tptrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const double* ap, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t tptrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs, const double* ap,
+ double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DTPTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, ap, b, &ldb, &info );
@@ -79,9 +81,10 @@
 // * complex<float> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tptrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* ap,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t tptrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ const std::complex<float>* ap, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CTPTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, ap, b, &ldb, &info );
@@ -94,9 +97,10 @@
 // * complex<double> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t tptrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* ap,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t tptrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ const std::complex<double>* ap, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZTPTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, ap, b, &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trcon.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trcon.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trcon.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -55,9 +55,9 @@
 // * float value-type.
 //
 template< typename Diag >
-inline std::ptrdiff_t trcon( char norm, char uplo, Diag, fortran_int_t n,
- const float* a, fortran_int_t lda, float& rcond, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t trcon( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const float* a, const fortran_int_t lda,
+ float& rcond, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_STRCON( &norm, &uplo, &lapack_option< Diag >::value, &n, a, &lda,
             &rcond, work, iwork, &info );
@@ -70,9 +70,9 @@
 // * double value-type.
 //
 template< typename Diag >
-inline std::ptrdiff_t trcon( char norm, char uplo, Diag, fortran_int_t n,
- const double* a, fortran_int_t lda, double& rcond, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t trcon( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const double* a, const fortran_int_t lda,
+ double& rcond, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DTRCON( &norm, &uplo, &lapack_option< Diag >::value, &n, a, &lda,
             &rcond, work, iwork, &info );
@@ -85,9 +85,10 @@
 // * complex<float> value-type.
 //
 template< typename Diag >
-inline std::ptrdiff_t trcon( char norm, char uplo, Diag, fortran_int_t n,
- const std::complex<float>* a, fortran_int_t lda, float& rcond,
- std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t trcon( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const std::complex<float>* a,
+ const fortran_int_t lda, float& rcond, std::complex<float>* work,
+ float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CTRCON( &norm, &uplo, &lapack_option< Diag >::value, &n, a, &lda,
             &rcond, work, rwork, &info );
@@ -100,9 +101,10 @@
 // * complex<double> value-type.
 //
 template< typename Diag >
-inline std::ptrdiff_t trcon( char norm, char uplo, Diag, fortran_int_t n,
- const std::complex<double>* a, fortran_int_t lda, double& rcond,
- std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t trcon( const char norm, const char uplo, Diag,
+ const fortran_int_t n, const std::complex<double>* a,
+ const fortran_int_t lda, double& rcond, std::complex<double>* work,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZTRCON( &norm, &uplo, &lapack_option< Diag >::value, &n, a, &lda,
             &rcond, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trevc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trevc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trevc.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t trevc( char side, char howmny, logical_t* select,
- fortran_int_t n, const float* t, fortran_int_t ldt, float* vl,
- fortran_int_t ldvl, float* vr, fortran_int_t ldvr, fortran_int_t mm,
+inline std::ptrdiff_t trevc( const char side, const char howmny,
+ logical_t* select, const fortran_int_t n, const float* t,
+ const fortran_int_t ldt, float* vl, const fortran_int_t ldvl,
+ float* vr, const fortran_int_t ldvr, const fortran_int_t mm,
         fortran_int_t& m, float* work ) {
     fortran_int_t info(0);
     LAPACK_STREVC( &side, &howmny, select, &n, t, &ldt, vl, &ldvl, vr, &ldvr,
@@ -67,9 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t trevc( char side, char howmny, logical_t* select,
- fortran_int_t n, const double* t, fortran_int_t ldt, double* vl,
- fortran_int_t ldvl, double* vr, fortran_int_t ldvr, fortran_int_t mm,
+inline std::ptrdiff_t trevc( const char side, const char howmny,
+ logical_t* select, const fortran_int_t n, const double* t,
+ const fortran_int_t ldt, double* vl, const fortran_int_t ldvl,
+ double* vr, const fortran_int_t ldvr, const fortran_int_t mm,
         fortran_int_t& m, double* work ) {
     fortran_int_t info(0);
     LAPACK_DTREVC( &side, &howmny, select, &n, t, &ldt, vl, &ldvl, vr, &ldvr,
@@ -82,11 +84,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t trevc( char side, char howmny, const logical_t* select,
- fortran_int_t n, std::complex<float>* t, fortran_int_t ldt,
- std::complex<float>* vl, fortran_int_t ldvl, std::complex<float>* vr,
- fortran_int_t ldvr, fortran_int_t mm, fortran_int_t& m,
- std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t trevc( const char side, const char howmny,
+ const logical_t* select, const fortran_int_t n,
+ std::complex<float>* t, const fortran_int_t ldt,
+ std::complex<float>* vl, const fortran_int_t ldvl,
+ std::complex<float>* vr, const fortran_int_t ldvr,
+ const fortran_int_t mm, fortran_int_t& m, std::complex<float>* work,
+ float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CTREVC( &side, &howmny, select, &n, t, &ldt, vl, &ldvl, vr, &ldvr,
             &mm, &m, work, rwork, &info );
@@ -98,11 +102,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t trevc( char side, char howmny, const logical_t* select,
- fortran_int_t n, std::complex<double>* t, fortran_int_t ldt,
- std::complex<double>* vl, fortran_int_t ldvl,
- std::complex<double>* vr, fortran_int_t ldvr, fortran_int_t mm,
- fortran_int_t& m, std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t trevc( const char side, const char howmny,
+ const logical_t* select, const fortran_int_t n,
+ std::complex<double>* t, const fortran_int_t ldt,
+ std::complex<double>* vl, const fortran_int_t ldvl,
+ std::complex<double>* vr, const fortran_int_t ldvr,
+ const fortran_int_t mm, fortran_int_t& m, std::complex<double>* work,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZTREVC( &side, &howmny, select, &n, t, &ldt, vl, &ldvl, vr, &ldvr,
             &mm, &m, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trexc.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trexc.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trexc.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t trexc( char compq, fortran_int_t n, float* t,
- fortran_int_t ldt, float* q, fortran_int_t ldq, fortran_int_t& ifst,
- fortran_int_t& ilst, float* work ) {
+inline std::ptrdiff_t trexc( const char compq, const fortran_int_t n, float* t,
+ const fortran_int_t ldt, float* q, const fortran_int_t ldq,
+ fortran_int_t& ifst, fortran_int_t& ilst, float* work ) {
     fortran_int_t info(0);
     LAPACK_STREXC( &compq, &n, t, &ldt, q, &ldq, &ifst, &ilst, work, &info );
     return info;
@@ -65,9 +65,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t trexc( char compq, fortran_int_t n, double* t,
- fortran_int_t ldt, double* q, fortran_int_t ldq, fortran_int_t& ifst,
- fortran_int_t& ilst, double* work ) {
+inline std::ptrdiff_t trexc( const char compq, const fortran_int_t n,
+ double* t, const fortran_int_t ldt, double* q,
+ const fortran_int_t ldq, fortran_int_t& ifst, fortran_int_t& ilst,
+ double* work ) {
     fortran_int_t info(0);
     LAPACK_DTREXC( &compq, &n, t, &ldt, q, &ldq, &ifst, &ilst, work, &info );
     return info;
@@ -78,9 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t trexc( char compq, fortran_int_t n,
- std::complex<float>* t, fortran_int_t ldt, std::complex<float>* q,
- fortran_int_t ldq, fortran_int_t ifst, fortran_int_t ilst ) {
+inline std::ptrdiff_t trexc( const char compq, const fortran_int_t n,
+ std::complex<float>* t, const fortran_int_t ldt,
+ std::complex<float>* q, const fortran_int_t ldq,
+ const fortran_int_t ifst, const fortran_int_t ilst ) {
     fortran_int_t info(0);
     LAPACK_CTREXC( &compq, &n, t, &ldt, q, &ldq, &ifst, &ilst, &info );
     return info;
@@ -91,9 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t trexc( char compq, fortran_int_t n,
- std::complex<double>* t, fortran_int_t ldt, std::complex<double>* q,
- fortran_int_t ldq, fortran_int_t ifst, fortran_int_t ilst ) {
+inline std::ptrdiff_t trexc( const char compq, const fortran_int_t n,
+ std::complex<double>* t, const fortran_int_t ldt,
+ std::complex<double>* q, const fortran_int_t ldq,
+ const fortran_int_t ifst, const fortran_int_t ilst ) {
     fortran_int_t info(0);
     LAPACK_ZTREXC( &compq, &n, t, &ldt, q, &ldq, &ifst, &ilst, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trrfs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trrfs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trrfs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -56,10 +56,11 @@
 // * float value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t trrfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const float* a, fortran_int_t lda, const float* b,
- fortran_int_t ldb, const float* x, fortran_int_t ldx, float* ferr,
- float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t trrfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs, const float* a,
+ const fortran_int_t lda, const float* b, const fortran_int_t ldb,
+ const float* x, const fortran_int_t ldx, float* ferr, float* berr,
+ float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_STRRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, a, &lda, b, &ldb, x, &ldx, ferr, berr,
@@ -73,11 +74,11 @@
 // * double value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t trrfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const double* a, fortran_int_t lda,
- const double* b, fortran_int_t ldb, const double* x,
- fortran_int_t ldx, double* ferr, double* berr, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t trrfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs, const double* a,
+ const fortran_int_t lda, const double* b, const fortran_int_t ldb,
+ const double* x, const fortran_int_t ldx, double* ferr, double* berr,
+ double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DTRRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, a, &lda, b, &ldb, x, &ldx, ferr, berr,
@@ -91,10 +92,11 @@
 // * complex<float> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t trrfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* b, fortran_int_t ldb,
- const std::complex<float>* x, fortran_int_t ldx, float* ferr,
+inline std::ptrdiff_t trrfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ const std::complex<float>* x, const fortran_int_t ldx, float* ferr,
         float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CTRRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<
@@ -109,10 +111,11 @@
 // * complex<double> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t trrfs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* b, fortran_int_t ldb,
- const std::complex<double>* x, fortran_int_t ldx, double* ferr,
+inline std::ptrdiff_t trrfs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ const std::complex<double>* x, const fortran_int_t ldx, double* ferr,
         double* berr, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZTRRFS( &uplo, &lapack_option< Trans >::value, &lapack_option<

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsen.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,11 +50,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t trsen( char job, char compq, const logical_t* select,
- fortran_int_t n, std::complex<float>* t, fortran_int_t ldt,
- std::complex<float>* q, fortran_int_t ldq, std::complex<float>* w,
- fortran_int_t& m, float& s, float& sep, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t trsen( const char job, const char compq,
+ const logical_t* select, const fortran_int_t n,
+ std::complex<float>* t, const fortran_int_t ldt,
+ std::complex<float>* q, const fortran_int_t ldq,
+ std::complex<float>* w, fortran_int_t& m, float& s, float& sep,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CTRSEN( &job, &compq, select, &n, t, &ldt, q, &ldq, w, &m, &s,
             &sep, work, &lwork, &info );
@@ -66,11 +67,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t trsen( char job, char compq, const logical_t* select,
- fortran_int_t n, std::complex<double>* t, fortran_int_t ldt,
- std::complex<double>* q, fortran_int_t ldq, std::complex<double>* w,
- fortran_int_t& m, double& s, double& sep, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t trsen( const char job, const char compq,
+ const logical_t* select, const fortran_int_t n,
+ std::complex<double>* t, const fortran_int_t ldt,
+ std::complex<double>* q, const fortran_int_t ldq,
+ std::complex<double>* w, fortran_int_t& m, double& s, double& sep,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZTRSEN( &job, &compq, select, &n, t, &ldt, q, &ldq, w, &m, &s,
             &sep, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsna.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsna.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsna.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t trsna( char job, char howmny, const logical_t* select,
- fortran_int_t n, const float* t, fortran_int_t ldt, const float* vl,
- fortran_int_t ldvl, const float* vr, fortran_int_t ldvr, float* s,
- float* sep, fortran_int_t mm, fortran_int_t& m, float* work,
- fortran_int_t ldwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t trsna( const char job, const char howmny,
+ const logical_t* select, const fortran_int_t n, const float* t,
+ const fortran_int_t ldt, const float* vl, const fortran_int_t ldvl,
+ const float* vr, const fortran_int_t ldvr, float* s, float* sep,
+ const fortran_int_t mm, fortran_int_t& m, float* work,
+ const fortran_int_t ldwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_STRSNA( &job, &howmny, select, &n, t, &ldt, vl, &ldvl, vr, &ldvr,
             s, sep, &mm, &m, work, &ldwork, iwork, &info );
@@ -68,11 +69,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t trsna( char job, char howmny, const logical_t* select,
- fortran_int_t n, const double* t, fortran_int_t ldt, const double* vl,
- fortran_int_t ldvl, const double* vr, fortran_int_t ldvr, double* s,
- double* sep, fortran_int_t mm, fortran_int_t& m, double* work,
- fortran_int_t ldwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t trsna( const char job, const char howmny,
+ const logical_t* select, const fortran_int_t n, const double* t,
+ const fortran_int_t ldt, const double* vl, const fortran_int_t ldvl,
+ const double* vr, const fortran_int_t ldvr, double* s, double* sep,
+ const fortran_int_t mm, fortran_int_t& m, double* work,
+ const fortran_int_t ldwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DTRSNA( &job, &howmny, select, &n, t, &ldt, vl, &ldvl, vr, &ldvr,
             s, sep, &mm, &m, work, &ldwork, iwork, &info );
@@ -84,12 +86,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t trsna( char job, char howmny, const logical_t* select,
- fortran_int_t n, const std::complex<float>* t, fortran_int_t ldt,
- const std::complex<float>* vl, fortran_int_t ldvl,
- const std::complex<float>* vr, fortran_int_t ldvr, float* s,
- float* sep, fortran_int_t mm, fortran_int_t& m,
- std::complex<float>* work, fortran_int_t ldwork, float* rwork ) {
+inline std::ptrdiff_t trsna( const char job, const char howmny,
+ const logical_t* select, const fortran_int_t n,
+ const std::complex<float>* t, const fortran_int_t ldt,
+ const std::complex<float>* vl, const fortran_int_t ldvl,
+ const std::complex<float>* vr, const fortran_int_t ldvr, float* s,
+ float* sep, const fortran_int_t mm, fortran_int_t& m,
+ std::complex<float>* work, const fortran_int_t ldwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CTRSNA( &job, &howmny, select, &n, t, &ldt, vl, &ldvl, vr, &ldvr,
             s, sep, &mm, &m, work, &ldwork, rwork, &info );
@@ -101,12 +104,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t trsna( char job, char howmny, const logical_t* select,
- fortran_int_t n, const std::complex<double>* t, fortran_int_t ldt,
- const std::complex<double>* vl, fortran_int_t ldvl,
- const std::complex<double>* vr, fortran_int_t ldvr, double* s,
- double* sep, fortran_int_t mm, fortran_int_t& m,
- std::complex<double>* work, fortran_int_t ldwork, double* rwork ) {
+inline std::ptrdiff_t trsna( const char job, const char howmny,
+ const logical_t* select, const fortran_int_t n,
+ const std::complex<double>* t, const fortran_int_t ldt,
+ const std::complex<double>* vl, const fortran_int_t ldvl,
+ const std::complex<double>* vr, const fortran_int_t ldvr, double* s,
+ double* sep, const fortran_int_t mm, fortran_int_t& m,
+ std::complex<double>* work, const fortran_int_t ldwork,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZTRSNA( &job, &howmny, select, &n, t, &ldt, vl, &ldvl, vr, &ldvr,
             s, sep, &mm, &m, work, &ldwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsyl.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsyl.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trsyl.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t trsyl( char trana, char tranb, fortran_int_t isgn,
- fortran_int_t m, fortran_int_t n, const float* a, fortran_int_t lda,
- const float* b, fortran_int_t ldb, float* c, fortran_int_t ldc,
- float& scale ) {
+inline std::ptrdiff_t trsyl( const char trana, const char tranb,
+ const fortran_int_t isgn, const fortran_int_t m,
+ const fortran_int_t n, const float* a, const fortran_int_t lda,
+ const float* b, const fortran_int_t ldb, float* c,
+ const fortran_int_t ldc, float& scale ) {
     fortran_int_t info(0);
     LAPACK_STRSYL( &trana, &tranb, &isgn, &m, &n, a, &lda, b, &ldb, c, &ldc,
             &scale, &info );
@@ -65,10 +66,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t trsyl( char trana, char tranb, fortran_int_t isgn,
- fortran_int_t m, fortran_int_t n, const double* a, fortran_int_t lda,
- const double* b, fortran_int_t ldb, double* c, fortran_int_t ldc,
- double& scale ) {
+inline std::ptrdiff_t trsyl( const char trana, const char tranb,
+ const fortran_int_t isgn, const fortran_int_t m,
+ const fortran_int_t n, const double* a, const fortran_int_t lda,
+ const double* b, const fortran_int_t ldb, double* c,
+ const fortran_int_t ldc, double& scale ) {
     fortran_int_t info(0);
     LAPACK_DTRSYL( &trana, &tranb, &isgn, &m, &n, a, &lda, b, &ldb, c, &ldc,
             &scale, &info );
@@ -80,10 +82,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t trsyl( char trana, char tranb, fortran_int_t isgn,
- fortran_int_t m, fortran_int_t n, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* c, fortran_int_t ldc, float& scale ) {
+inline std::ptrdiff_t trsyl( const char trana, const char tranb,
+ const fortran_int_t isgn, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* c,
+ const fortran_int_t ldc, float& scale ) {
     fortran_int_t info(0);
     LAPACK_CTRSYL( &trana, &tranb, &isgn, &m, &n, a, &lda, b, &ldb, c, &ldc,
             &scale, &info );
@@ -95,10 +99,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t trsyl( char trana, char tranb, fortran_int_t isgn,
- fortran_int_t m, fortran_int_t n, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* c, fortran_int_t ldc, double& scale ) {
+inline std::ptrdiff_t trsyl( const char trana, const char tranb,
+ const fortran_int_t isgn, const fortran_int_t m,
+ const fortran_int_t n, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* c,
+ const fortran_int_t ldc, double& scale ) {
     fortran_int_t info(0);
     LAPACK_ZTRSYL( &trana, &tranb, &isgn, &m, &n, a, &lda, b, &ldb, c, &ldc,
             &scale, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trtri.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trtri.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trtri.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -59,7 +59,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Diag >
-inline std::ptrdiff_t trtri( Order, UpLo, Diag, int n, float* a, int lda ) {
+inline std::ptrdiff_t trtri( Order, UpLo, Diag, const int n, float* a,
+ const int lda ) {
     return clapack_strtri( clapack_option< Order >::value, clapack_option<
             UpLo >::value, clapack_option< Diag >::value, n, a, lda );
 }
@@ -70,7 +71,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Diag >
-inline std::ptrdiff_t trtri( Order, UpLo, Diag, int n, double* a, int lda ) {
+inline std::ptrdiff_t trtri( Order, UpLo, Diag, const int n, double* a,
+ const int lda ) {
     return clapack_dtrtri( clapack_option< Order >::value, clapack_option<
             UpLo >::value, clapack_option< Diag >::value, n, a, lda );
 }
@@ -81,8 +83,8 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Diag >
-inline std::ptrdiff_t trtri( Order, UpLo, Diag, int n, std::complex<float>* a,
- int lda ) {
+inline std::ptrdiff_t trtri( Order, UpLo, Diag, const int n,
+ std::complex<float>* a, const int lda ) {
     return clapack_ctrtri( clapack_option< Order >::value, clapack_option<
             UpLo >::value, clapack_option< Diag >::value, n, a, lda );
 }
@@ -93,8 +95,8 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Diag >
-inline std::ptrdiff_t trtri( Order, UpLo, Diag, int n, std::complex<double>* a,
- int lda ) {
+inline std::ptrdiff_t trtri( Order, UpLo, Diag, const int n,
+ std::complex<double>* a, const int lda ) {
     return clapack_ztrtri( clapack_option< Order >::value, clapack_option<
             UpLo >::value, clapack_option< Diag >::value, n, a, lda );
 }
@@ -106,8 +108,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo, typename Diag >
-inline std::ptrdiff_t trtri( Order, UpLo, Diag, fortran_int_t n, float* a,
- fortran_int_t lda ) {
+inline std::ptrdiff_t trtri( Order, UpLo, Diag, const fortran_int_t n,
+ float* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_STRTRI( &lapack_option< UpLo >::value, &lapack_option<
@@ -121,8 +123,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo, typename Diag >
-inline std::ptrdiff_t trtri( Order, UpLo, Diag, fortran_int_t n, double* a,
- fortran_int_t lda ) {
+inline std::ptrdiff_t trtri( Order, UpLo, Diag, const fortran_int_t n,
+ double* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DTRTRI( &lapack_option< UpLo >::value, &lapack_option<
@@ -136,8 +138,8 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo, typename Diag >
-inline std::ptrdiff_t trtri( Order, UpLo, Diag, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda ) {
+inline std::ptrdiff_t trtri( Order, UpLo, Diag, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CTRTRI( &lapack_option< UpLo >::value, &lapack_option<
@@ -151,8 +153,8 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo, typename Diag >
-inline std::ptrdiff_t trtri( Order, UpLo, Diag, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda ) {
+inline std::ptrdiff_t trtri( Order, UpLo, Diag, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZTRTRI( &lapack_option< UpLo >::value, &lapack_option<

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trtrs.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trtrs.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/trtrs.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,9 @@
 // * float value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t trtrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t trtrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs, const float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_STRTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, a, &lda, b, &ldb, &info );
@@ -66,9 +66,9 @@
 // * double value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t trtrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t trtrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs, const double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DTRTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, a, &lda, b, &ldb, &info );
@@ -81,9 +81,10 @@
 // * complex<float> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t trtrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t trtrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ const std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CTRTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, a, &lda, b, &ldb, &info );
@@ -96,9 +97,10 @@
 // * complex<double> value-type.
 //
 template< typename Trans, typename Diag >
-inline std::ptrdiff_t trtrs( char uplo, Trans, Diag, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t trtrs( const char uplo, Trans, Diag,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ const std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZTRTRS( &uplo, &lapack_option< Trans >::value, &lapack_option<
             Diag >::value, &n, &nrhs, a, &lda, b, &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tzrzf.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tzrzf.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/tzrzf.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,8 +53,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t tzrzf( fortran_int_t m, fortran_int_t n, float* a,
- fortran_int_t lda, float* tau, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t tzrzf( const fortran_int_t m, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* tau, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_STZRZF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -65,8 +66,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t tzrzf( fortran_int_t m, fortran_int_t n, double* a,
- fortran_int_t lda, double* tau, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t tzrzf( const fortran_int_t m, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* tau, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DTZRZF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -77,9 +79,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t tzrzf( fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* tau,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t tzrzf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* tau, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CTZRZF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -90,9 +93,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t tzrzf( fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* tau,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t tzrzf( const fortran_int_t m, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* tau, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZTZRZF( &m, &n, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungbr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungbr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungbr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ungbr( char vect, fortran_int_t m, fortran_int_t n,
- fortran_int_t k, std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* tau, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ungbr( const char vect, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* tau,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNGBR( &vect, &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -64,10 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ungbr( char vect, fortran_int_t m, fortran_int_t n,
- fortran_int_t k, std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* tau, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ungbr( const char vect, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* tau,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNGBR( &vect, &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unghr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unghr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unghr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t unghr( fortran_int_t n, fortran_int_t ilo,
- fortran_int_t ihi, std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* tau, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unghr( const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* tau,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNGHR( &n, &ilo, &ihi, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -64,10 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t unghr( fortran_int_t n, fortran_int_t ilo,
- fortran_int_t ihi, std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* tau, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unghr( const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* tau,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNGHR( &n, &ilo, &ihi, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unglq.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unglq.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unglq.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t unglq( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* tau, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unglq( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* tau,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNGLQ( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -64,10 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t unglq( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* tau, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unglq( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* tau,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNGLQ( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungql.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungql.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungql.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ungql( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* tau, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ungql( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* tau,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNGQL( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -64,10 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ungql( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* tau, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ungql( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* tau,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNGQL( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungqr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungqr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungqr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ungqr( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* tau, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ungqr( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* tau,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNGQR( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -64,10 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ungqr( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* tau, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ungqr( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* tau,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNGQR( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungrq.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungrq.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungrq.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,10 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ungrq( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* tau, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ungrq( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* tau,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNGRQ( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;
@@ -64,10 +64,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ungrq( fortran_int_t m, fortran_int_t n, fortran_int_t k,
- std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* tau, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ungrq( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t k, std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* tau,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNGRQ( &m, &n, &k, a, &lda, tau, work, &lwork, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungtr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungtr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/ungtr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ungtr( UpLo, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* tau,
- std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ungtr( UpLo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* tau, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNGTR( &lapack_option< UpLo >::value, &n, a, &lda, tau, work,
             &lwork, &info );
@@ -67,9 +68,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ungtr( UpLo, fortran_int_t n, std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* tau,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ungtr( UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* tau, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNGTR( &lapack_option< UpLo >::value, &n, a, &lda, tau, work,
             &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmbr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmbr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmbr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmbr( char vect, char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* tau,
- std::complex<float>* c, fortran_int_t ldc, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unmbr( const char vect, const char side, Trans,
+ const fortran_int_t m, const fortran_int_t n, const fortran_int_t k,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* tau, std::complex<float>* c,
+ const fortran_int_t ldc, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNMBR( &vect, &side, &lapack_option< Trans >::value, &m, &n, &k,
             a, &lda, tau, c, &ldc, work, &lwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmbr( char vect, char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* tau,
- std::complex<double>* c, fortran_int_t ldc,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t unmbr( const char vect, const char side, Trans,
+ const fortran_int_t m, const fortran_int_t n, const fortran_int_t k,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* tau, std::complex<double>* c,
+ const fortran_int_t ldc, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNMBR( &vect, &side, &lapack_option< Trans >::value, &m, &n, &k,
             a, &lda, tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmhr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmhr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmhr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmhr( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t ilo, fortran_int_t ihi,
- const std::complex<float>* a, fortran_int_t lda,
- const std::complex<float>* tau, std::complex<float>* c,
- fortran_int_t ldc, std::complex<float>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t unmhr( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const std::complex<float>* a,
+ const fortran_int_t lda, const std::complex<float>* tau,
+ std::complex<float>* c, const fortran_int_t ldc,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNMHR( &side, &lapack_option< Trans >::value, &m, &n, &ilo, &ihi,
             a, &lda, tau, c, &ldc, work, &lwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmhr( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t ilo, fortran_int_t ihi,
- const std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* tau, std::complex<double>* c,
- fortran_int_t ldc, std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t unmhr( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t ilo,
+ const fortran_int_t ihi, const std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* tau,
+ std::complex<double>* c, const fortran_int_t ldc,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNMHR( &side, &lapack_option< Trans >::value, &m, &n, &ilo, &ihi,
             a, &lda, tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmlq.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmlq.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmlq.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmlq( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* tau,
- std::complex<float>* c, fortran_int_t ldc, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unmlq( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* tau, std::complex<float>* c,
+ const fortran_int_t ldc, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNMLQ( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmlq( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* tau,
- std::complex<double>* c, fortran_int_t ldc,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t unmlq( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* tau, std::complex<double>* c,
+ const fortran_int_t ldc, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNMLQ( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmql.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmql.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmql.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmql( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* tau,
- std::complex<float>* c, fortran_int_t ldc, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unmql( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* tau, std::complex<float>* c,
+ const fortran_int_t ldc, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNMQL( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmql( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* tau,
- std::complex<double>* c, fortran_int_t ldc,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t unmql( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* tau, std::complex<double>* c,
+ const fortran_int_t ldc, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNMQL( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmqr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmqr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmqr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmqr( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* tau,
- std::complex<float>* c, fortran_int_t ldc, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unmqr( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* tau, std::complex<float>* c,
+ const fortran_int_t ldc, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNMQR( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmqr( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* tau,
- std::complex<double>* c, fortran_int_t ldc,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t unmqr( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* tau, std::complex<double>* c,
+ const fortran_int_t ldc, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNMQR( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmrq.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmrq.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmrq.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmrq( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<float>* a,
- fortran_int_t lda, const std::complex<float>* tau,
- std::complex<float>* c, fortran_int_t ldc, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t unmrq( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<float>* a, const fortran_int_t lda,
+ const std::complex<float>* tau, std::complex<float>* c,
+ const fortran_int_t ldc, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNMRQ( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmrq( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, const std::complex<double>* a,
- fortran_int_t lda, const std::complex<double>* tau,
- std::complex<double>* c, fortran_int_t ldc,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t unmrq( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k,
+ const std::complex<double>* a, const fortran_int_t lda,
+ const std::complex<double>* tau, std::complex<double>* c,
+ const fortran_int_t ldc, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNMRQ( &side, &lapack_option< Trans >::value, &m, &n, &k, a, &lda,
             tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmrz.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmrz.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmrz.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmrz( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, fortran_int_t l,
- const std::complex<float>* a, fortran_int_t lda,
+inline std::ptrdiff_t unmrz( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const fortran_int_t l,
+ const std::complex<float>* a, const fortran_int_t lda,
         const std::complex<float>* tau, std::complex<float>* c,
- fortran_int_t ldc, std::complex<float>* work, fortran_int_t lwork ) {
+ const fortran_int_t ldc, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNMRZ( &side, &lapack_option< Trans >::value, &m, &n, &k, &l, a,
             &lda, tau, c, &ldc, work, &lwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t unmrz( char side, Trans, fortran_int_t m,
- fortran_int_t n, fortran_int_t k, fortran_int_t l,
- const std::complex<double>* a, fortran_int_t lda,
+inline std::ptrdiff_t unmrz( const char side, Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t k, const fortran_int_t l,
+ const std::complex<double>* a, const fortran_int_t lda,
         const std::complex<double>* tau, std::complex<double>* c,
- fortran_int_t ldc, std::complex<double>* work, fortran_int_t lwork ) {
+ const fortran_int_t ldc, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNMRZ( &side, &lapack_option< Trans >::value, &m, &n, &k, &l, a,
             &lda, tau, c, &ldc, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmtr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmtr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/unmtr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo, typename Trans >
-inline std::ptrdiff_t unmtr( char side, UpLo, Trans, fortran_int_t m,
- fortran_int_t n, const std::complex<float>* a, fortran_int_t lda,
+inline std::ptrdiff_t unmtr( const char side, UpLo, Trans,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float>* a, const fortran_int_t lda,
         const std::complex<float>* tau, std::complex<float>* c,
- fortran_int_t ldc, std::complex<float>* work, fortran_int_t lwork ) {
+ const fortran_int_t ldc, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CUNMTR( &side, &lapack_option< UpLo >::value, &lapack_option<
             Trans >::value, &m, &n, a, &lda, tau, c, &ldc, work, &lwork,
@@ -70,10 +72,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo, typename Trans >
-inline std::ptrdiff_t unmtr( char side, UpLo, Trans, fortran_int_t m,
- fortran_int_t n, const std::complex<double>* a, fortran_int_t lda,
+inline std::ptrdiff_t unmtr( const char side, UpLo, Trans,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double>* a, const fortran_int_t lda,
         const std::complex<double>* tau, std::complex<double>* c,
- fortran_int_t ldc, std::complex<double>* work, fortran_int_t lwork ) {
+ const fortran_int_t ldc, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZUNMTR( &side, &lapack_option< UpLo >::value, &lapack_option<
             Trans >::value, &m, &n, a, &lda, tau, c, &ldc, work, &lwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/upgtr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/upgtr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/upgtr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t upgtr( char uplo, fortran_int_t n,
+inline std::ptrdiff_t upgtr( const char uplo, const fortran_int_t n,
         const std::complex<float>* ap, const std::complex<float>* tau,
- std::complex<float>* q, fortran_int_t ldq,
+ std::complex<float>* q, const fortran_int_t ldq,
         std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CUPGTR( &uplo, &n, ap, tau, q, &ldq, work, &info );
@@ -64,9 +64,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t upgtr( char uplo, fortran_int_t n,
+inline std::ptrdiff_t upgtr( const char uplo, const fortran_int_t n,
         const std::complex<double>* ap, const std::complex<double>* tau,
- std::complex<double>* q, fortran_int_t ldq,
+ std::complex<double>* q, const fortran_int_t ldq,
         std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZUPGTR( &uplo, &n, ap, tau, q, &ldq, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/upmtr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/upmtr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/computational/upmtr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t upmtr( char side, char uplo, Trans, fortran_int_t m,
- fortran_int_t n, const std::complex<float>* ap,
- const std::complex<float>* tau, std::complex<float>* c,
- fortran_int_t ldc, std::complex<float>* work ) {
+inline std::ptrdiff_t upmtr( const char side, const char uplo, Trans,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<float>* ap, const std::complex<float>* tau,
+ std::complex<float>* c, const fortran_int_t ldc,
+ std::complex<float>* work ) {
     fortran_int_t info(0);
     LAPACK_CUPMTR( &side, &uplo, &lapack_option< Trans >::value, &m, &n, ap,
             tau, c, &ldc, work, &info );
@@ -68,10 +69,11 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t upmtr( char side, char uplo, Trans, fortran_int_t m,
- fortran_int_t n, const std::complex<double>* ap,
- const std::complex<double>* tau, std::complex<double>* c,
- fortran_int_t ldc, std::complex<double>* work ) {
+inline std::ptrdiff_t upmtr( const char side, const char uplo, Trans,
+ const fortran_int_t m, const fortran_int_t n,
+ const std::complex<double>* ap, const std::complex<double>* tau,
+ std::complex<double>* c, const fortran_int_t ldc,
+ std::complex<double>* work ) {
     fortran_int_t info(0);
     LAPACK_ZUPMTR( &side, &uplo, &lapack_option< Trans >::value, &m, &n, ap,
             tau, c, &ldc, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -2985,6 +2985,22 @@
         double* rcond, double* ferr, double* berr, void* work, double* rwork,
         fortran_int_t* info );
 
+// Value-type variants of gejsv
+void LAPACK_SGEJSV( const char* joba, const char* jobu, const char* jobv,
+ const char* jobr, const char* jobt, const char* jobp,
+ const fortran_int_t* m, const fortran_int_t* n, float* a,
+ const fortran_int_t* lda, float* sva, float* u,
+ const fortran_int_t* ldu, float* v, const fortran_int_t* ldv,
+ float* work, const fortran_int_t* lwork, fortran_int_t* iwork,
+ fortran_int_t* info );
+void LAPACK_DGEJSV( const char* joba, const char* jobu, const char* jobv,
+ const char* jobr, const char* jobt, const char* jobp,
+ const fortran_int_t* m, const fortran_int_t* n, double* a,
+ const fortran_int_t* lda, double* sva, double* u,
+ const fortran_int_t* ldu, double* v, const fortran_int_t* ldv,
+ double* work, const fortran_int_t* lwork, fortran_int_t* iwork,
+ fortran_int_t* info );
+
 // Value-type variants of gesv
 void LAPACK_SGESV( const fortran_int_t* n, const fortran_int_t* nrhs,
         float* a, const fortran_int_t* lda, fortran_int_t* ipiv, float* b,
@@ -3943,6 +3959,271 @@
 // LAPACK auxiliary routines
 //
 
+// Value-type variants of larf
+void LAPACK_SLARF( const char* side, const fortran_int_t* m,
+ const fortran_int_t* n, const float* v, const fortran_int_t* incv,
+ const float* tau, float* c, const fortran_int_t* ldc, float* work );
+void LAPACK_DLARF( const char* side, const fortran_int_t* m,
+ const fortran_int_t* n, const double* v, const fortran_int_t* incv,
+ const double* tau, double* c, const fortran_int_t* ldc, double* work );
+void LAPACK_CLARF( const char* side, const fortran_int_t* m,
+ const fortran_int_t* n, const void* v, const fortran_int_t* incv,
+ const void* tau, void* c, const fortran_int_t* ldc, void* work );
+void LAPACK_ZLARF( const char* side, const fortran_int_t* m,
+ const fortran_int_t* n, const void* v, const fortran_int_t* incv,
+ const void* tau, void* c, const fortran_int_t* ldc, void* work );
+
+// Value-type variants of larfb
+void LAPACK_SLARFB( const char* side, const char* trans, const char* direct,
+ const char* storev, const fortran_int_t* m, const fortran_int_t* n,
+ const fortran_int_t* k, const float* v, const fortran_int_t* ldv,
+ const float* t, const fortran_int_t* ldt, float* c,
+ const fortran_int_t* ldc, float* work, const fortran_int_t* ldwork );
+void LAPACK_DLARFB( const char* side, const char* trans, const char* direct,
+ const char* storev, const fortran_int_t* m, const fortran_int_t* n,
+ const fortran_int_t* k, const double* v, const fortran_int_t* ldv,
+ const double* t, const fortran_int_t* ldt, double* c,
+ const fortran_int_t* ldc, double* work, const fortran_int_t* ldwork );
+void LAPACK_CLARFB( const char* side, const char* trans, const char* direct,
+ const char* storev, const fortran_int_t* m, const fortran_int_t* n,
+ const fortran_int_t* k, const void* v, const fortran_int_t* ldv,
+ const void* t, const fortran_int_t* ldt, void* c,
+ const fortran_int_t* ldc, void* work, const fortran_int_t* ldwork );
+void LAPACK_ZLARFB( const char* side, const char* trans, const char* direct,
+ const char* storev, const fortran_int_t* m, const fortran_int_t* n,
+ const fortran_int_t* k, const void* v, const fortran_int_t* ldv,
+ const void* t, const fortran_int_t* ldt, void* c,
+ const fortran_int_t* ldc, void* work, const fortran_int_t* ldwork );
+
+// Value-type variants of larfg
+void LAPACK_SLARFG( const fortran_int_t* n, float* alpha, float* x,
+ const fortran_int_t* incx, float* tau );
+void LAPACK_DLARFG( const fortran_int_t* n, double* alpha, double* x,
+ const fortran_int_t* incx, double* tau );
+void LAPACK_CLARFG( const fortran_int_t* n, void* alpha, void* x,
+ const fortran_int_t* incx, void* tau );
+void LAPACK_ZLARFG( const fortran_int_t* n, void* alpha, void* x,
+ const fortran_int_t* incx, void* tau );
+
+// Value-type variants of larft
+void LAPACK_SLARFT( const char* direct, const char* storev,
+ const fortran_int_t* n, const fortran_int_t* k, float* v,
+ const fortran_int_t* ldv, const float* tau, float* t,
+ const fortran_int_t* ldt );
+void LAPACK_DLARFT( const char* direct, const char* storev,
+ const fortran_int_t* n, const fortran_int_t* k, double* v,
+ const fortran_int_t* ldv, const double* tau, double* t,
+ const fortran_int_t* ldt );
+void LAPACK_CLARFT( const char* direct, const char* storev,
+ const fortran_int_t* n, const fortran_int_t* k, void* v,
+ const fortran_int_t* ldv, const void* tau, void* t,
+ const fortran_int_t* ldt );
+void LAPACK_ZLARFT( const char* direct, const char* storev,
+ const fortran_int_t* n, const fortran_int_t* k, void* v,
+ const fortran_int_t* ldv, const void* tau, void* t,
+ const fortran_int_t* ldt );
+
+// Value-type variants of larfx
+void LAPACK_SLARFX( const char* side, const fortran_int_t* m,
+ const fortran_int_t* n, const float* v, const float* tau, float* c,
+ const fortran_int_t* ldc, float* work );
+void LAPACK_DLARFX( const char* side, const fortran_int_t* m,
+ const fortran_int_t* n, const double* v, const double* tau, double* c,
+ const fortran_int_t* ldc, double* work );
+void LAPACK_CLARFX( const char* side, const fortran_int_t* m,
+ const fortran_int_t* n, const void* v, const void* tau, void* c,
+ const fortran_int_t* ldc, void* work );
+void LAPACK_ZLARFX( const char* side, const fortran_int_t* m,
+ const fortran_int_t* n, const void* v, const void* tau, void* c,
+ const fortran_int_t* ldc, void* work );
+
+// Value-type variants of largv
+void LAPACK_SLARGV( const fortran_int_t* n, float* x,
+ const fortran_int_t* incx, float* y, const fortran_int_t* incy,
+ float* c, const fortran_int_t* incc );
+void LAPACK_DLARGV( const fortran_int_t* n, double* x,
+ const fortran_int_t* incx, double* y, const fortran_int_t* incy,
+ double* c, const fortran_int_t* incc );
+void LAPACK_CLARGV( const fortran_int_t* n, void* x,
+ const fortran_int_t* incx, void* y, const fortran_int_t* incy,
+ float* c, const fortran_int_t* incc );
+void LAPACK_ZLARGV( const fortran_int_t* n, void* x,
+ const fortran_int_t* incx, void* y, const fortran_int_t* incy,
+ double* c, const fortran_int_t* incc );
+
+// Value-type variants of larnv
+void LAPACK_SLARNV( const fortran_int_t* idist, fortran_int_t* iseed,
+ const fortran_int_t* n, float* x );
+void LAPACK_DLARNV( const fortran_int_t* idist, fortran_int_t* iseed,
+ const fortran_int_t* n, double* x );
+void LAPACK_CLARNV( const fortran_int_t* idist, fortran_int_t* iseed,
+ const fortran_int_t* n, void* x );
+void LAPACK_ZLARNV( const fortran_int_t* idist, fortran_int_t* iseed,
+ const fortran_int_t* n, void* x );
+
+// Value-type variants of larrb
+void LAPACK_SLARRB( const fortran_int_t* n, const float* d, const float* lld,
+ const fortran_int_t* ifirst, const fortran_int_t* ilast,
+ const float* rtol1, const float* rtol2, const fortran_int_t* offset,
+ float* w, float* wgap, float* werr, float* work, fortran_int_t* iwork,
+ const float* pivmin, const float* spdiam, const fortran_int_t* twist,
+ fortran_int_t* info );
+void LAPACK_DLARRB( const fortran_int_t* n, const double* d,
+ const double* lld, const fortran_int_t* ifirst,
+ const fortran_int_t* ilast, const double* rtol1, const double* rtol2,
+ const fortran_int_t* offset, double* w, double* wgap, double* werr,
+ double* work, fortran_int_t* iwork, const double* pivmin,
+ const double* spdiam, const fortran_int_t* twist,
+ fortran_int_t* info );
+
+// Value-type variants of larre
+void LAPACK_SLARRE( const char* range, const fortran_int_t* n, float* vl,
+ float* vu, const fortran_int_t* il, const fortran_int_t* iu, float* d,
+ float* e, float* e2, const float* rtol1, const float* rtol2,
+ const float* spltol, fortran_int_t* nsplit, fortran_int_t* isplit,
+ fortran_int_t* m, float* w, float* werr, float* wgap,
+ fortran_int_t* iblock, fortran_int_t* indexw, float* gers,
+ float* pivmin, float* work, fortran_int_t* iwork,
+ fortran_int_t* info );
+void LAPACK_DLARRE( const char* range, const fortran_int_t* n, double* vl,
+ double* vu, const fortran_int_t* il, const fortran_int_t* iu,
+ double* d, double* e, double* e2, const double* rtol1,
+ const double* rtol2, const double* spltol, fortran_int_t* nsplit,
+ fortran_int_t* isplit, fortran_int_t* m, double* w, double* werr,
+ double* wgap, fortran_int_t* iblock, fortran_int_t* indexw,
+ double* gers, double* pivmin, double* work, fortran_int_t* iwork,
+ fortran_int_t* info );
+
+// Value-type variants of langb
+void LAPACK_SLANGB( const char* norm, const fortran_int_t* n,
+ const fortran_int_t* kl, const fortran_int_t* ku, const float* ab,
+ const fortran_int_t* ldab, float* work );
+void LAPACK_DLANGB( const char* norm, const fortran_int_t* n,
+ const fortran_int_t* kl, const fortran_int_t* ku, const double* ab,
+ const fortran_int_t* ldab, double* work );
+void LAPACK_CLANGB( const char* norm, const fortran_int_t* n,
+ const fortran_int_t* kl, const fortran_int_t* ku, const void* ab,
+ const fortran_int_t* ldab, float* work );
+void LAPACK_ZLANGB( const char* norm, const fortran_int_t* n,
+ const fortran_int_t* kl, const fortran_int_t* ku, const void* ab,
+ const fortran_int_t* ldab, double* work );
+
+// Value-type variants of lange
+void LAPACK_SLANGE( const char* norm, const fortran_int_t* m,
+ const fortran_int_t* n, const float* a, const fortran_int_t* lda,
+ float* work );
+void LAPACK_DLANGE( const char* norm, const fortran_int_t* m,
+ const fortran_int_t* n, const double* a, const fortran_int_t* lda,
+ double* work );
+void LAPACK_CLANGE( const char* norm, const fortran_int_t* m,
+ const fortran_int_t* n, const void* a, const fortran_int_t* lda,
+ float* work );
+void LAPACK_ZLANGE( const char* norm, const fortran_int_t* m,
+ const fortran_int_t* n, const void* a, const fortran_int_t* lda,
+ double* work );
+
+// Value-type variants of lanhb
+void LAPACK_CLANHB( const char* norm, const char* uplo,
+ const fortran_int_t* n, const fortran_int_t* k, const void* ab,
+ const fortran_int_t* ldab, float* work );
+void LAPACK_ZLANHB( const char* norm, const char* uplo,
+ const fortran_int_t* n, const fortran_int_t* k, const void* ab,
+ const fortran_int_t* ldab, double* work );
+
+// Value-type variants of lanhe
+void LAPACK_CLANHE( const char* norm, const char* uplo,
+ const fortran_int_t* n, const void* a, const fortran_int_t* lda,
+ float* work );
+void LAPACK_ZLANHE( const char* norm, const char* uplo,
+ const fortran_int_t* n, const void* a, const fortran_int_t* lda,
+ double* work );
+
+// Value-type variants of lanhp
+void LAPACK_CLANHP( const char* norm, const char* uplo,
+ const fortran_int_t* n, const void* ap, float* work );
+void LAPACK_ZLANHP( const char* norm, const char* uplo,
+ const fortran_int_t* n, const void* ap, double* work );
+
+// Value-type variants of lanhs
+void LAPACK_SLANHS( const char* norm, const fortran_int_t* n, const float* a,
+ const fortran_int_t* lda, float* work );
+void LAPACK_DLANHS( const char* norm, const fortran_int_t* n, const double* a,
+ const fortran_int_t* lda, double* work );
+void LAPACK_CLANHS( const char* norm, const fortran_int_t* n, const void* a,
+ const fortran_int_t* lda, float* work );
+void LAPACK_ZLANHS( const char* norm, const fortran_int_t* n, const void* a,
+ const fortran_int_t* lda, double* work );
+
+// Value-type variants of lansb
+void LAPACK_SLANSB( const char* norm, const char* uplo,
+ const fortran_int_t* n, const fortran_int_t* k, const float* ab,
+ const fortran_int_t* ldab, float* work );
+void LAPACK_DLANSB( const char* norm, const char* uplo,
+ const fortran_int_t* n, const fortran_int_t* k, const double* ab,
+ const fortran_int_t* ldab, double* work );
+void LAPACK_CLANSB( const char* norm, const char* uplo,
+ const fortran_int_t* n, const fortran_int_t* k, const void* ab,
+ const fortran_int_t* ldab, float* work );
+void LAPACK_ZLANSB( const char* norm, const char* uplo,
+ const fortran_int_t* n, const fortran_int_t* k, const void* ab,
+ const fortran_int_t* ldab, double* work );
+
+// Value-type variants of lansp
+void LAPACK_SLANSP( const char* norm, const char* uplo,
+ const fortran_int_t* n, const float* ap, float* work );
+void LAPACK_DLANSP( const char* norm, const char* uplo,
+ const fortran_int_t* n, const double* ap, double* work );
+void LAPACK_CLANSP( const char* norm, const char* uplo,
+ const fortran_int_t* n, const void* ap, float* work );
+void LAPACK_ZLANSP( const char* norm, const char* uplo,
+ const fortran_int_t* n, const void* ap, double* work );
+
+// Value-type variants of lansy
+void LAPACK_SLANSY( const char* norm, const char* uplo,
+ const fortran_int_t* n, const float* a, const fortran_int_t* lda,
+ float* work );
+void LAPACK_DLANSY( const char* norm, const char* uplo,
+ const fortran_int_t* n, const double* a, const fortran_int_t* lda,
+ double* work );
+void LAPACK_CLANSY( const char* norm, const char* uplo,
+ const fortran_int_t* n, const void* a, const fortran_int_t* lda,
+ float* work );
+void LAPACK_ZLANSY( const char* norm, const char* uplo,
+ const fortran_int_t* n, const void* a, const fortran_int_t* lda,
+ double* work );
+
+// Value-type variants of lantb
+void LAPACK_SLANTB( const char* norm, const char* uplo, const char* diag,
+ const fortran_int_t* n, const fortran_int_t* k, const float* ab,
+ const fortran_int_t* ldab, float* work );
+void LAPACK_DLANTB( const char* norm, const char* uplo, const char* diag,
+ const fortran_int_t* n, const fortran_int_t* k, const double* ab,
+ const fortran_int_t* ldab, double* work );
+void LAPACK_CLANTB( const char* norm, const char* uplo, const char* diag,
+ const fortran_int_t* n, const fortran_int_t* k, const void* ab,
+ const fortran_int_t* ldab, float* work );
+void LAPACK_ZLANTB( const char* norm, const char* uplo, const char* diag,
+ const fortran_int_t* n, const fortran_int_t* k, const void* ab,
+ const fortran_int_t* ldab, double* work );
+
+// Value-type variants of lantr
+void LAPACK_SLANTR( const char* norm, const char* uplo, const char* diag,
+ const fortran_int_t* m, const fortran_int_t* n, const float* a,
+ const fortran_int_t* lda, float* work );
+void LAPACK_DLANTR( const char* norm, const char* uplo, const char* diag,
+ const fortran_int_t* m, const fortran_int_t* n, const double* a,
+ const fortran_int_t* lda, double* work );
+void LAPACK_CLANTR( const char* norm, const char* uplo, const char* diag,
+ const fortran_int_t* m, const fortran_int_t* n, const void* a,
+ const fortran_int_t* lda, float* work );
+void LAPACK_ZLANTR( const char* norm, const char* uplo, const char* diag,
+ const fortran_int_t* m, const fortran_int_t* n, const void* a,
+ const fortran_int_t* lda, double* work );
+
+//
+// LAPACK auxiliary routines
+//
+
 int LAPACK_ILAENV(int const* ispec, const char* name, const char* opt,
     int const* n1, int const* n2, int const* n3, int const* n4, int, int);
 

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack_names.h
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack_names.h (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/detail/lapack_names.h 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -966,6 +966,10 @@
 #define LAPACK_CGBSVX FORTRAN_ID( cgbsvx )
 #define LAPACK_ZGBSVX FORTRAN_ID( zgbsvx )
 
+// Value-type variants of gejsv
+#define LAPACK_SGEJSV FORTRAN_ID( sgejsv )
+#define LAPACK_DGEJSV FORTRAN_ID( dgejsv )
+
 // Value-type variants of gesv
 #define LAPACK_SGESV FORTRAN_ID( sgesv )
 #define LAPACK_DGESV FORTRAN_ID( dgesv )
@@ -1250,6 +1254,120 @@
 // LAPACK auxiliary routines
 //
 
+// Value-type variants of larf
+#define LAPACK_SLARF FORTRAN_ID( slarf )
+#define LAPACK_DLARF FORTRAN_ID( dlarf )
+#define LAPACK_CLARF FORTRAN_ID( clarf )
+#define LAPACK_ZLARF FORTRAN_ID( zlarf )
+
+// Value-type variants of larfb
+#define LAPACK_SLARFB FORTRAN_ID( slarfb )
+#define LAPACK_DLARFB FORTRAN_ID( dlarfb )
+#define LAPACK_CLARFB FORTRAN_ID( clarfb )
+#define LAPACK_ZLARFB FORTRAN_ID( zlarfb )
+
+// Value-type variants of larfg
+#define LAPACK_SLARFG FORTRAN_ID( slarfg )
+#define LAPACK_DLARFG FORTRAN_ID( dlarfg )
+#define LAPACK_CLARFG FORTRAN_ID( clarfg )
+#define LAPACK_ZLARFG FORTRAN_ID( zlarfg )
+
+// Value-type variants of larft
+#define LAPACK_SLARFT FORTRAN_ID( slarft )
+#define LAPACK_DLARFT FORTRAN_ID( dlarft )
+#define LAPACK_CLARFT FORTRAN_ID( clarft )
+#define LAPACK_ZLARFT FORTRAN_ID( zlarft )
+
+// Value-type variants of larfx
+#define LAPACK_SLARFX FORTRAN_ID( slarfx )
+#define LAPACK_DLARFX FORTRAN_ID( dlarfx )
+#define LAPACK_CLARFX FORTRAN_ID( clarfx )
+#define LAPACK_ZLARFX FORTRAN_ID( zlarfx )
+
+// Value-type variants of largv
+#define LAPACK_SLARGV FORTRAN_ID( slargv )
+#define LAPACK_DLARGV FORTRAN_ID( dlargv )
+#define LAPACK_CLARGV FORTRAN_ID( clargv )
+#define LAPACK_ZLARGV FORTRAN_ID( zlargv )
+
+// Value-type variants of larnv
+#define LAPACK_SLARNV FORTRAN_ID( slarnv )
+#define LAPACK_DLARNV FORTRAN_ID( dlarnv )
+#define LAPACK_CLARNV FORTRAN_ID( clarnv )
+#define LAPACK_ZLARNV FORTRAN_ID( zlarnv )
+
+// Value-type variants of larrb
+#define LAPACK_SLARRB FORTRAN_ID( slarrb )
+#define LAPACK_DLARRB FORTRAN_ID( dlarrb )
+
+// Value-type variants of larre
+#define LAPACK_SLARRE FORTRAN_ID( slarre )
+#define LAPACK_DLARRE FORTRAN_ID( dlarre )
+
+// Value-type variants of langb
+#define LAPACK_SLANGB FORTRAN_ID( slangb )
+#define LAPACK_DLANGB FORTRAN_ID( dlangb )
+#define LAPACK_CLANGB FORTRAN_ID( clangb )
+#define LAPACK_ZLANGB FORTRAN_ID( zlangb )
+
+// Value-type variants of lange
+#define LAPACK_SLANGE FORTRAN_ID( slange )
+#define LAPACK_DLANGE FORTRAN_ID( dlange )
+#define LAPACK_CLANGE FORTRAN_ID( clange )
+#define LAPACK_ZLANGE FORTRAN_ID( zlange )
+
+// Value-type variants of lanhb
+#define LAPACK_CLANHB FORTRAN_ID( clanhb )
+#define LAPACK_ZLANHB FORTRAN_ID( zlanhb )
+
+// Value-type variants of lanhe
+#define LAPACK_CLANHE FORTRAN_ID( clanhe )
+#define LAPACK_ZLANHE FORTRAN_ID( zlanhe )
+
+// Value-type variants of lanhp
+#define LAPACK_CLANHP FORTRAN_ID( clanhp )
+#define LAPACK_ZLANHP FORTRAN_ID( zlanhp )
+
+// Value-type variants of lanhs
+#define LAPACK_SLANHS FORTRAN_ID( slanhs )
+#define LAPACK_DLANHS FORTRAN_ID( dlanhs )
+#define LAPACK_CLANHS FORTRAN_ID( clanhs )
+#define LAPACK_ZLANHS FORTRAN_ID( zlanhs )
+
+// Value-type variants of lansb
+#define LAPACK_SLANSB FORTRAN_ID( slansb )
+#define LAPACK_DLANSB FORTRAN_ID( dlansb )
+#define LAPACK_CLANSB FORTRAN_ID( clansb )
+#define LAPACK_ZLANSB FORTRAN_ID( zlansb )
+
+// Value-type variants of lansp
+#define LAPACK_SLANSP FORTRAN_ID( slansp )
+#define LAPACK_DLANSP FORTRAN_ID( dlansp )
+#define LAPACK_CLANSP FORTRAN_ID( clansp )
+#define LAPACK_ZLANSP FORTRAN_ID( zlansp )
+
+// Value-type variants of lansy
+#define LAPACK_SLANSY FORTRAN_ID( slansy )
+#define LAPACK_DLANSY FORTRAN_ID( dlansy )
+#define LAPACK_CLANSY FORTRAN_ID( clansy )
+#define LAPACK_ZLANSY FORTRAN_ID( zlansy )
+
+// Value-type variants of lantb
+#define LAPACK_SLANTB FORTRAN_ID( slantb )
+#define LAPACK_DLANTB FORTRAN_ID( dlantb )
+#define LAPACK_CLANTB FORTRAN_ID( clantb )
+#define LAPACK_ZLANTB FORTRAN_ID( zlantb )
+
+// Value-type variants of lantr
+#define LAPACK_SLANTR FORTRAN_ID( slantr )
+#define LAPACK_DLANTR FORTRAN_ID( dlantr )
+#define LAPACK_CLANTR FORTRAN_ID( clantr )
+#define LAPACK_ZLANTR FORTRAN_ID( zlantr )
+
+//
+// LAPACK auxiliary routines
+//
+
 #define LAPACK_ILAENV FORTRAN_ID( ilaenv )
 
 #endif

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -46,6 +46,7 @@
 #include <boost/numeric/bindings/lapack/driver/cposv.hpp>
 #include <boost/numeric/bindings/lapack/driver/gbsv.hpp>
 #include <boost/numeric/bindings/lapack/driver/gbsvx.hpp>
+#include <boost/numeric/bindings/lapack/driver/gejsv.hpp>
 #include <boost/numeric/bindings/lapack/driver/gesv.hpp>
 #include <boost/numeric/bindings/lapack/driver/gesvx.hpp>
 #include <boost/numeric/bindings/lapack/driver/gtsv.hpp>

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cgesv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cgesv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cgesv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,10 +49,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t cgesv( fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* a, fortran_int_t lda, fortran_int_t* ipiv,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx,
+inline std::ptrdiff_t cgesv( const fortran_int_t n, const fortran_int_t nrhs,
+ std::complex<double>* a, const fortran_int_t lda, fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx,
         std::complex<double>* work, std::complex<float>* swork, double* rwork,
         fortran_int_t& iter ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cposv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cposv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/cposv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,12 +51,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t cposv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* a, fortran_int_t lda,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx,
- std::complex<double>* work, std::complex<float>* swork, double* rwork,
- fortran_int_t& iter ) {
+inline std::ptrdiff_t cposv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, const std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* x,
+ const fortran_int_t ldx, std::complex<double>* work,
+ std::complex<float>* swork, double* rwork, fortran_int_t& iter ) {
     fortran_int_t info(0);
     LAPACK_ZCPOSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,
             x, &ldx, work, swork, rwork, &iter, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -48,9 +48,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gbsv( fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, float* ab, fortran_int_t ldab,
- fortran_int_t* ipiv, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t gbsv( const fortran_int_t n, const fortran_int_t kl,
+ const fortran_int_t ku, const fortran_int_t nrhs, float* ab,
+ const fortran_int_t ldab, fortran_int_t* ipiv, float* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SGBSV( &n, &kl, &ku, &nrhs, ab, &ldab, ipiv, b, &ldb, &info );
     return info;
@@ -61,9 +62,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gbsv( fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, double* ab, fortran_int_t ldab,
- fortran_int_t* ipiv, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t gbsv( const fortran_int_t n, const fortran_int_t kl,
+ const fortran_int_t ku, const fortran_int_t nrhs, double* ab,
+ const fortran_int_t ldab, fortran_int_t* ipiv, double* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DGBSV( &n, &kl, &ku, &nrhs, ab, &ldab, ipiv, b, &ldb, &info );
     return info;
@@ -74,10 +76,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gbsv( fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, std::complex<float>* ab,
- fortran_int_t ldab, fortran_int_t* ipiv, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gbsv( const fortran_int_t n, const fortran_int_t kl,
+ const fortran_int_t ku, const fortran_int_t nrhs,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ fortran_int_t* ipiv, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CGBSV( &n, &kl, &ku, &nrhs, ab, &ldab, ipiv, b, &ldb, &info );
     return info;
@@ -88,10 +91,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gbsv( fortran_int_t n, fortran_int_t kl,
- fortran_int_t ku, fortran_int_t nrhs, std::complex<double>* ab,
- fortran_int_t ldab, fortran_int_t* ipiv, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gbsv( const fortran_int_t n, const fortran_int_t kl,
+ const fortran_int_t ku, const fortran_int_t nrhs,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ fortran_int_t* ipiv, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZGBSV( &n, &kl, &ku, &nrhs, ab, &ldab, ipiv, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gbsvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,12 +54,13 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbsvx( char fact, Trans, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, fortran_int_t nrhs, float* ab,
- fortran_int_t ldab, float* afb, fortran_int_t ldafb,
- fortran_int_t* ipiv, char& equed, float* r, float* c, float* b,
- fortran_int_t ldb, float* x, fortran_int_t ldx, float& rcond,
- float* ferr, float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gbsvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, float* ab, const fortran_int_t ldab,
+ float* afb, const fortran_int_t ldafb, fortran_int_t* ipiv,
+ char& equed, float* r, float* c, float* b, const fortran_int_t ldb,
+ float* x, const fortran_int_t ldx, float& rcond, float* ferr,
+ float* berr, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGBSVX( &fact, &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs,
             ab, &ldab, afb, &ldafb, ipiv, &equed, r, c, b, &ldb, x, &ldx,
@@ -73,12 +74,13 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbsvx( char fact, Trans, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, fortran_int_t nrhs, double* ab,
- fortran_int_t ldab, double* afb, fortran_int_t ldafb,
- fortran_int_t* ipiv, char& equed, double* r, double* c, double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double& rcond,
- double* ferr, double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gbsvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, double* ab, const fortran_int_t ldab,
+ double* afb, const fortran_int_t ldafb, fortran_int_t* ipiv,
+ char& equed, double* r, double* c, double* b, const fortran_int_t ldb,
+ double* x, const fortran_int_t ldx, double& rcond, double* ferr,
+ double* berr, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGBSVX( &fact, &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs,
             ab, &ldab, afb, &ldafb, ipiv, &equed, r, c, b, &ldb, x, &ldx,
@@ -92,13 +94,14 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbsvx( char fact, Trans, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, fortran_int_t nrhs,
- std::complex<float>* ab, fortran_int_t ldab, std::complex<float>* afb,
- fortran_int_t ldafb, fortran_int_t* ipiv, char& equed, float* r,
- float* c, std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float& rcond, float* ferr,
- float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t gbsvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, std::complex<float>* ab,
+ const fortran_int_t ldab, std::complex<float>* afb,
+ const fortran_int_t ldafb, fortran_int_t* ipiv, char& equed, float* r,
+ float* c, std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGBSVX( &fact, &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs,
             ab, &ldab, afb, &ldafb, ipiv, &equed, r, c, b, &ldb, x, &ldx,
@@ -112,14 +115,15 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gbsvx( char fact, Trans, fortran_int_t n,
- fortran_int_t kl, fortran_int_t ku, fortran_int_t nrhs,
- std::complex<double>* ab, fortran_int_t ldab,
- std::complex<double>* afb, fortran_int_t ldafb, fortran_int_t* ipiv,
- char& equed, double* r, double* c, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double& rcond, double* ferr, double* berr, std::complex<double>* work,
- double* rwork ) {
+inline std::ptrdiff_t gbsvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t kl, const fortran_int_t ku,
+ const fortran_int_t nrhs, std::complex<double>* ab,
+ const fortran_int_t ldab, std::complex<double>* afb,
+ const fortran_int_t ldafb, fortran_int_t* ipiv, char& equed,
+ double* r, double* c, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* x,
+ const fortran_int_t ldx, double& rcond, double* ferr, double* berr,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGBSVX( &fact, &lapack_option< Trans >::value, &n, &kl, &ku, &nrhs,
             ab, &ldab, afb, &ldafb, ipiv, &equed, r, c, b, &ldb, x, &ldx,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gees.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gees.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gees.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gees( char jobvs, char sort, logical_t* select,
- fortran_int_t n, float* a, fortran_int_t lda, fortran_int_t& sdim,
- float* wr, float* wi, float* vs, fortran_int_t ldvs, float* work,
- fortran_int_t lwork, logical_t* bwork ) {
+inline std::ptrdiff_t gees( const char jobvs, const char sort,
+ logical_t* select, const fortran_int_t n, float* a,
+ const fortran_int_t lda, fortran_int_t& sdim, float* wr, float* wi,
+ float* vs, const fortran_int_t ldvs, float* work,
+ const fortran_int_t lwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGEES( &jobvs, &sort, &select, &n, a, &lda, &sdim, wr, wi, vs,
             &ldvs, work, &lwork, bwork, &info );
@@ -68,10 +69,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gees( char jobvs, char sort, logical_t* select,
- fortran_int_t n, double* a, fortran_int_t lda, fortran_int_t& sdim,
- double* wr, double* wi, double* vs, fortran_int_t ldvs, double* work,
- fortran_int_t lwork, logical_t* bwork ) {
+inline std::ptrdiff_t gees( const char jobvs, const char sort,
+ logical_t* select, const fortran_int_t n, double* a,
+ const fortran_int_t lda, fortran_int_t& sdim, double* wr, double* wi,
+ double* vs, const fortran_int_t ldvs, double* work,
+ const fortran_int_t lwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGEES( &jobvs, &sort, &select, &n, a, &lda, &sdim, wr, wi, vs,
             &ldvs, work, &lwork, bwork, &info );
@@ -83,11 +85,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gees( char jobvs, char sort, logical_t* select,
- fortran_int_t n, std::complex<float>* a, fortran_int_t lda,
- fortran_int_t& sdim, std::complex<float>* w, std::complex<float>* vs,
- fortran_int_t ldvs, std::complex<float>* work, fortran_int_t lwork,
- float* rwork, logical_t* bwork ) {
+inline std::ptrdiff_t gees( const char jobvs, const char sort,
+ logical_t* select, const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, fortran_int_t& sdim, std::complex<float>* w,
+ std::complex<float>* vs, const fortran_int_t ldvs,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork,
+ logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGEES( &jobvs, &sort, &select, &n, a, &lda, &sdim, w, vs, &ldvs,
             work, &lwork, rwork, bwork, &info );
@@ -99,11 +102,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gees( char jobvs, char sort, logical_t* select,
- fortran_int_t n, std::complex<double>* a, fortran_int_t lda,
- fortran_int_t& sdim, std::complex<double>* w,
- std::complex<double>* vs, fortran_int_t ldvs,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
+inline std::ptrdiff_t gees( const char jobvs, const char sort,
+ logical_t* select, const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, fortran_int_t& sdim, std::complex<double>* w,
+ std::complex<double>* vs, const fortran_int_t ldvs,
+ std::complex<double>* work, const fortran_int_t lwork, double* rwork,
         logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEES( &jobvs, &sort, &select, &n, a, &lda, &sdim, w, vs, &ldvs,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geesx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,12 +53,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t geesx( char jobvs, char sort, logical_t* select,
- char sense, fortran_int_t n, float* a, fortran_int_t lda,
- fortran_int_t& sdim, float* wr, float* wi, float* vs,
- fortran_int_t ldvs, float& rconde, float& rcondv, float* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork,
- logical_t* bwork ) {
+inline std::ptrdiff_t geesx( const char jobvs, const char sort,
+ logical_t* select, const char sense, const fortran_int_t n, float* a,
+ const fortran_int_t lda, fortran_int_t& sdim, float* wr, float* wi,
+ float* vs, const fortran_int_t ldvs, float& rconde, float& rcondv,
+ float* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGEESX( &jobvs, &sort, &select, &sense, &n, a, &lda, &sdim, wr, wi,
             vs, &ldvs, &rconde, &rcondv, work, &lwork, iwork, &liwork, bwork,
@@ -71,12 +71,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t geesx( char jobvs, char sort, logical_t* select,
- char sense, fortran_int_t n, double* a, fortran_int_t lda,
- fortran_int_t& sdim, double* wr, double* wi, double* vs,
- fortran_int_t ldvs, double& rconde, double& rcondv, double* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork,
- logical_t* bwork ) {
+inline std::ptrdiff_t geesx( const char jobvs, const char sort,
+ logical_t* select, const char sense, const fortran_int_t n, double* a,
+ const fortran_int_t lda, fortran_int_t& sdim, double* wr, double* wi,
+ double* vs, const fortran_int_t ldvs, double& rconde, double& rcondv,
+ double* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGEESX( &jobvs, &sort, &select, &sense, &n, a, &lda, &sdim, wr, wi,
             vs, &ldvs, &rconde, &rcondv, work, &lwork, iwork, &liwork, bwork,
@@ -89,12 +89,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t geesx( char jobvs, char sort, logical_t* select,
- char sense, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, fortran_int_t& sdim, std::complex<float>* w,
- std::complex<float>* vs, fortran_int_t ldvs, float& rconde,
- float& rcondv, std::complex<float>* work, fortran_int_t lwork,
- float* rwork, logical_t* bwork ) {
+inline std::ptrdiff_t geesx( const char jobvs, const char sort,
+ logical_t* select, const char sense, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, fortran_int_t& sdim,
+ std::complex<float>* w, std::complex<float>* vs,
+ const fortran_int_t ldvs, float& rconde, float& rcondv,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork,
+ logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGEESX( &jobvs, &sort, &select, &sense, &n, a, &lda, &sdim, w, vs,
             &ldvs, &rconde, &rcondv, work, &lwork, rwork, bwork, &info );
@@ -106,12 +107,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t geesx( char jobvs, char sort, logical_t* select,
- char sense, fortran_int_t n, std::complex<double>* a,
- fortran_int_t lda, fortran_int_t& sdim, std::complex<double>* w,
- std::complex<double>* vs, fortran_int_t ldvs, double& rconde,
- double& rcondv, std::complex<double>* work, fortran_int_t lwork,
- double* rwork, logical_t* bwork ) {
+inline std::ptrdiff_t geesx( const char jobvs, const char sort,
+ logical_t* select, const char sense, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, fortran_int_t& sdim,
+ std::complex<double>* w, std::complex<double>* vs,
+ const fortran_int_t ldvs, double& rconde, double& rcondv,
+ std::complex<double>* work, const fortran_int_t lwork, double* rwork,
+ logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEESX( &jobvs, &sort, &select, &sense, &n, a, &lda, &sdim, w, vs,
             &ldvs, &rconde, &rcondv, work, &lwork, rwork, bwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t geev( char jobvl, char jobvr, fortran_int_t n, float* a,
- fortran_int_t lda, float* wr, float* wi, float* vl,
- fortran_int_t ldvl, float* vr, fortran_int_t ldvr, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t geev( const char jobvl, const char jobvr,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* wr,
+ float* wi, float* vl, const fortran_int_t ldvl, float* vr,
+ const fortran_int_t ldvr, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGEEV( &jobvl, &jobvr, &n, a, &lda, wr, wi, vl, &ldvl, vr, &ldvr,
             work, &lwork, &info );
@@ -68,10 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t geev( char jobvl, char jobvr, fortran_int_t n, double* a,
- fortran_int_t lda, double* wr, double* wi, double* vl,
- fortran_int_t ldvl, double* vr, fortran_int_t ldvr, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t geev( const char jobvl, const char jobvr,
+ const fortran_int_t n, double* a, const fortran_int_t lda, double* wr,
+ double* wi, double* vl, const fortran_int_t ldvl, double* vr,
+ const fortran_int_t ldvr, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGEEV( &jobvl, &jobvr, &n, a, &lda, wr, wi, vl, &ldvl, vr, &ldvr,
             work, &lwork, &info );
@@ -83,11 +83,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t geev( char jobvl, char jobvr, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* w,
- std::complex<float>* vl, fortran_int_t ldvl, std::complex<float>* vr,
- fortran_int_t ldvr, std::complex<float>* work, fortran_int_t lwork,
- float* rwork ) {
+inline std::ptrdiff_t geev( const char jobvl, const char jobvr,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* w,
+ std::complex<float>* vl, const fortran_int_t ldvl,
+ std::complex<float>* vr, const fortran_int_t ldvr,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGEEV( &jobvl, &jobvr, &n, a, &lda, w, vl, &ldvl, vr, &ldvr, work,
             &lwork, rwork, &info );
@@ -99,11 +100,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t geev( char jobvl, char jobvr, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* w,
- std::complex<double>* vl, fortran_int_t ldvl,
- std::complex<double>* vr, fortran_int_t ldvr,
- std::complex<double>* work, fortran_int_t lwork, double* rwork ) {
+inline std::ptrdiff_t geev( const char jobvl, const char jobvr,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* w,
+ std::complex<double>* vl, const fortran_int_t ldvl,
+ std::complex<double>* vr, const fortran_int_t ldvr,
+ std::complex<double>* work, const fortran_int_t lwork,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEEV( &jobvl, &jobvr, &n, a, &lda, w, vl, &ldvl, vr, &ldvr, work,
             &lwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/geevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,11 +53,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t geevx( char balanc, char jobvl, char jobvr, char sense,
- fortran_int_t n, float* a, fortran_int_t lda, float* wr, float* wi,
- float* vl, fortran_int_t ldvl, float* vr, fortran_int_t ldvr,
+inline std::ptrdiff_t geevx( const char balanc, const char jobvl,
+ const char jobvr, const char sense, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* wr, float* wi, float* vl,
+ const fortran_int_t ldvl, float* vr, const fortran_int_t ldvr,
         fortran_int_t& ilo, fortran_int_t& ihi, float* scale, float& abnrm,
- float* rconde, float* rcondv, float* work, fortran_int_t lwork,
+ float* rconde, float* rcondv, float* work, const fortran_int_t lwork,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGEEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, wr, wi, vl,
@@ -71,12 +72,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t geevx( char balanc, char jobvl, char jobvr, char sense,
- fortran_int_t n, double* a, fortran_int_t lda, double* wr, double* wi,
- double* vl, fortran_int_t ldvl, double* vr, fortran_int_t ldvr,
+inline std::ptrdiff_t geevx( const char balanc, const char jobvl,
+ const char jobvr, const char sense, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* wr, double* wi, double* vl,
+ const fortran_int_t ldvl, double* vr, const fortran_int_t ldvr,
         fortran_int_t& ilo, fortran_int_t& ihi, double* scale, double& abnrm,
- double* rconde, double* rcondv, double* work, fortran_int_t lwork,
- fortran_int_t* iwork ) {
+ double* rconde, double* rcondv, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGEEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, wr, wi, vl,
             &ldvl, vr, &ldvr, &ilo, &ihi, scale, &abnrm, rconde, rcondv, work,
@@ -89,13 +91,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t geevx( char balanc, char jobvl, char jobvr, char sense,
- fortran_int_t n, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* w, std::complex<float>* vl, fortran_int_t ldvl,
- std::complex<float>* vr, fortran_int_t ldvr, fortran_int_t& ilo,
- fortran_int_t& ihi, float* scale, float& abnrm, float* rconde,
- float* rcondv, std::complex<float>* work, fortran_int_t lwork,
- float* rwork ) {
+inline std::ptrdiff_t geevx( const char balanc, const char jobvl,
+ const char jobvr, const char sense, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* w, std::complex<float>* vl,
+ const fortran_int_t ldvl, std::complex<float>* vr,
+ const fortran_int_t ldvr, fortran_int_t& ilo, fortran_int_t& ihi,
+ float* scale, float& abnrm, float* rconde, float* rcondv,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGEEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, w, vl, &ldvl,
             vr, &ldvr, &ilo, &ihi, scale, &abnrm, rconde, rcondv, work,
@@ -108,12 +111,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t geevx( char balanc, char jobvl, char jobvr, char sense,
- fortran_int_t n, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* w, std::complex<double>* vl, fortran_int_t ldvl,
- std::complex<double>* vr, fortran_int_t ldvr, fortran_int_t& ilo,
- fortran_int_t& ihi, double* scale, double& abnrm, double* rconde,
- double* rcondv, std::complex<double>* work, fortran_int_t lwork,
+inline std::ptrdiff_t geevx( const char balanc, const char jobvl,
+ const char jobvr, const char sense, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* w, std::complex<double>* vl,
+ const fortran_int_t ldvl, std::complex<double>* vr,
+ const fortran_int_t ldvr, fortran_int_t& ilo, fortran_int_t& ihi,
+ double* scale, double& abnrm, double* rconde, double* rcondv,
+ std::complex<double>* work, const fortran_int_t lwork,
         double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, w, vl, &ldvl,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gegv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gegv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gegv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gegv( char jobvl, char jobvr, fortran_int_t n, float* a,
- fortran_int_t lda, float* b, fortran_int_t ldb, float* alphar,
- float* alphai, float* beta, float* vl, fortran_int_t ldvl, float* vr,
- fortran_int_t ldvr, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gegv( const char jobvl, const char jobvr,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* alphar, float* alphai, float* beta,
+ float* vl, const fortran_int_t ldvl, float* vr,
+ const fortran_int_t ldvr, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGEGV( &jobvl, &jobvr, &n, a, &lda, b, &ldb, alphar, alphai, beta,
             vl, &ldvl, vr, &ldvr, work, &lwork, &info );
@@ -68,10 +69,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gegv( char jobvl, char jobvr, fortran_int_t n, double* a,
- fortran_int_t lda, double* b, fortran_int_t ldb, double* alphar,
- double* alphai, double* beta, double* vl, fortran_int_t ldvl,
- double* vr, fortran_int_t ldvr, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gegv( const char jobvl, const char jobvr,
+ const fortran_int_t n, double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, double* alphar, double* alphai, double* beta,
+ double* vl, const fortran_int_t ldvl, double* vr,
+ const fortran_int_t ldvr, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGEGV( &jobvl, &jobvr, &n, a, &lda, b, &ldb, alphar, alphai, beta,
             vl, &ldvl, vr, &ldvr, work, &lwork, &info );
@@ -83,12 +85,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gegv( char jobvl, char jobvr, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* alpha,
+inline std::ptrdiff_t gegv( const char jobvl, const char jobvr,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* alpha,
         std::complex<float>* beta, std::complex<float>* vl,
- fortran_int_t ldvl, std::complex<float>* vr, fortran_int_t ldvr,
- std::complex<float>* work, fortran_int_t lwork, float* rwork ) {
+ const fortran_int_t ldvl, std::complex<float>* vr,
+ const fortran_int_t ldvr, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGEGV( &jobvl, &jobvr, &n, a, &lda, b, &ldb, alpha, beta, vl,
             &ldvl, vr, &ldvr, work, &lwork, rwork, &info );
@@ -100,12 +104,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gegv( char jobvl, char jobvr, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* alpha,
+inline std::ptrdiff_t gegv( const char jobvl, const char jobvr,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* alpha,
         std::complex<double>* beta, std::complex<double>* vl,
- fortran_int_t ldvl, std::complex<double>* vr, fortran_int_t ldvr,
- std::complex<double>* work, fortran_int_t lwork, double* rwork ) {
+ const fortran_int_t ldvl, std::complex<double>* vr,
+ const fortran_int_t ldvr, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGEGV( &jobvl, &jobvr, &n, a, &lda, b, &ldb, alpha, beta, vl,
             &ldvl, vr, &ldvr, work, &lwork, rwork, &info );

Added: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gejsv.hpp
==============================================================================
--- (empty file)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gejsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -0,0 +1,279 @@
+//
+// Copyright (c) 2002--2010
+// Toon Knapen, Karl Meerbergen, Kresimir Fresl,
+// Thomas Klimpel and Rutger ter Borg
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// THIS FILE IS AUTOMATICALLY GENERATED
+// PLEASE DO NOT EDIT!
+//
+
+#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_DRIVER_GEJSV_HPP
+#define BOOST_NUMERIC_BINDINGS_LAPACK_DRIVER_GEJSV_HPP
+
+#include <boost/assert.hpp>
+#include <boost/numeric/bindings/begin.hpp>
+#include <boost/numeric/bindings/detail/array.hpp>
+#include <boost/numeric/bindings/is_mutable.hpp>
+#include <boost/numeric/bindings/lapack/workspace.hpp>
+#include <boost/numeric/bindings/remove_imaginary.hpp>
+#include <boost/numeric/bindings/size.hpp>
+#include <boost/numeric/bindings/stride.hpp>
+#include <boost/numeric/bindings/value.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+//
+// The LAPACK-backend for gejsv is the netlib-compatible backend.
+//
+#include <boost/numeric/bindings/lapack/detail/lapack.h>
+#include <boost/numeric/bindings/lapack/detail/lapack_option.hpp>
+
+namespace boost {
+namespace numeric {
+namespace bindings {
+namespace lapack {
+
+//
+// The detail namespace contains value-type-overloaded functions that
+// dispatch to the appropriate back-end LAPACK-routine.
+//
+namespace detail {
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * float value-type.
+//
+inline std::ptrdiff_t gejsv( const char joba, const char jobu, const char jobv,
+ const char jobr, const char jobt, const char jobp,
+ const fortran_int_t m, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* sva, float* u,
+ const fortran_int_t ldu, float* v, const fortran_int_t ldv,
+ float* work, const fortran_int_t lwork, fortran_int_t* iwork ) {
+ fortran_int_t info(0);
+ LAPACK_SGEJSV( &joba, &jobu, &jobv, &jobr, &jobt, &jobp, &m, &n, a, &lda,
+ sva, u, &ldu, v, &ldv, work, &lwork, iwork, &info );
+ return info;
+}
+
+//
+// Overloaded function for dispatching to
+// * netlib-compatible LAPACK backend (the default), and
+// * double value-type.
+//
+inline std::ptrdiff_t gejsv( const char joba, const char jobu, const char jobv,
+ const char jobr, const char jobt, const char jobp,
+ const fortran_int_t m, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* sva, double* u,
+ const fortran_int_t ldu, double* v, const fortran_int_t ldv,
+ double* work, const fortran_int_t lwork, fortran_int_t* iwork ) {
+ fortran_int_t info(0);
+ LAPACK_DGEJSV( &joba, &jobu, &jobv, &jobr, &jobt, &jobp, &m, &n, a, &lda,
+ sva, u, &ldu, v, &ldv, work, &lwork, iwork, &info );
+ return info;
+}
+
+} // namespace detail
+
+//
+// Value-type based template class. Use this class if you need a type
+// for dispatching to gejsv.
+//
+template< typename Value >
+struct gejsv_impl {
+
+ typedef Value value_type;
+ typedef typename remove_imaginary< Value >::type real_type;
+ typedef tag::column_major order;
+
+ //
+ // Static member function for user-defined workspaces, that
+ // * Deduces the required arguments for dispatching to LAPACK, and
+ // * Asserts that most arguments make sense.
+ //
+ template< typename MatrixA, typename SVA, typename U, typename V,
+ typename WORK, typename IWORK >
+ static std::ptrdiff_t invoke( const char joba, const char jobu,
+ const char jobv, const char jobr, const char jobt,
+ const char jobp, MatrixA& a, const fortran_int_t lwork,
+ detail::workspace5< SVA, U, V, WORK, IWORK > work ) {
+ BOOST_STATIC_ASSERT( (is_mutable< MatrixA >::value) );
+ BOOST_ASSERT( size(work.select(fortran_int_t())) >=
+ min_size_iwork( $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size(work.select(real_type())) >=
+ min_size_sva( $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size(work.select(real_type())) >=
+ min_size_u( $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size(work.select(real_type())) >=
+ min_size_v( $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size(work.select(real_type())) >= min_size_work(
+ $CALL_MIN_SIZE ));
+ BOOST_ASSERT( size_column(a) >= size_column(a) );
+ BOOST_ASSERT( size_minor(a) == 1 || stride_minor(a) == 1 );
+ BOOST_ASSERT( size_row(a) >= 0 );
+ BOOST_ASSERT( stride_major(a) >= std::max< std::ptrdiff_t >(1,
+ size_row(a)) );
+ return detail::gejsv( joba, jobu, jobv, jobr, jobt, jobp, size_row(a),
+ size_column(a), begin_value(a), stride_major(a),
+ begin_value(work.select(real_type())), begin_value(u),
+ stride_major(u), begin_value(v), stride_major(v),
+ begin_value(work.select(real_type())), lwork,
+ begin_value(work.select(fortran_int_t())) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the minimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member function
+ // * Enables the unblocked algorithm (BLAS level 2)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char joba, const char jobu,
+ const char jobv, const char jobr, const char jobt,
+ const char jobp, MatrixA& a, const fortran_int_t lwork,
+ minimal_workspace work ) {
+ bindings::detail::array<
+ real_type > tmp_sva( min_size_sva( $CALL_MIN_SIZE ) );
+ bindings::detail::array<
+ real_type > tmp_u( min_size_u( $CALL_MIN_SIZE ) );
+ bindings::detail::array<
+ real_type > tmp_v( min_size_v( $CALL_MIN_SIZE ) );
+ bindings::detail::array< real_type > tmp_work( min_size_work(
+ $CALL_MIN_SIZE ) );
+ bindings::detail::array< fortran_int_t > tmp_iwork(
+ min_size_iwork( $CALL_MIN_SIZE ) );
+ return invoke( joba, jobu, jobv, jobr, jobt, jobp, a, lwork,
+ workspace( tmp_sva, tmp_u, tmp_v, tmp_work, tmp_iwork ) );
+ }
+
+ //
+ // Static member function that
+ // * Figures out the optimal workspace requirements, and passes
+ // the results to the user-defined workspace overload of the
+ // invoke static member
+ // * Enables the blocked algorithm (BLAS level 3)
+ //
+ template< typename MatrixA >
+ static std::ptrdiff_t invoke( const char joba, const char jobu,
+ const char jobv, const char jobr, const char jobt,
+ const char jobp, MatrixA& a, const fortran_int_t lwork,
+ optimal_workspace work ) {
+ return invoke( joba, jobu, jobv, jobr, jobt, jobp, a, lwork,
+ minimal_workspace() );
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array sva.
+ //
+ static std::ptrdiff_t min_size_sva( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array u.
+ //
+ static std::ptrdiff_t min_size_u( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array v.
+ //
+ static std::ptrdiff_t min_size_v( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array work.
+ //
+ static std::ptrdiff_t min_size_work( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+
+ //
+ // Static member function that returns the minimum size of
+ // workspace-array iwork.
+ //
+ static std::ptrdiff_t min_size_iwork( $ARGUMENTS ) {
+ $MIN_SIZE
+ }
+};
+
+
+//
+// Functions for direct use. These functions are overloaded for temporaries,
+// so that wrapped types can still be passed and used for write-access. In
+// addition, if applicable, they are overloaded for user-defined workspaces.
+// Calls to these functions are passed to the gejsv_impl classes. In the
+// documentation, most overloads are collapsed to avoid a large number of
+// prototypes which are very similar.
+//
+
+//
+// Overloaded function for gejsv. Its overload differs for
+// * MatrixA&
+// * User-defined workspace
+//
+template< typename MatrixA, typename Workspace >
+inline std::ptrdiff_t gejsv( const char joba, const char jobu,
+ const char jobv, const char jobr, const char jobt, const char jobp,
+ MatrixA& a, const fortran_int_t lwork, Workspace work ) {
+ return gejsv_impl< typename value< MatrixA >::type >::invoke( joba,
+ jobu, jobv, jobr, jobt, jobp, a, lwork, work );
+}
+
+//
+// Overloaded function for gejsv. Its overload differs for
+// * MatrixA&
+// * Default workspace-type (optimal)
+//
+template< typename MatrixA >
+inline std::ptrdiff_t gejsv( const char joba, const char jobu,
+ const char jobv, const char jobr, const char jobt, const char jobp,
+ MatrixA& a, const fortran_int_t lwork ) {
+ return gejsv_impl< typename value< MatrixA >::type >::invoke( joba,
+ jobu, jobv, jobr, jobt, jobp, a, lwork, optimal_workspace() );
+}
+
+//
+// Overloaded function for gejsv. Its overload differs for
+// * const MatrixA&
+// * User-defined workspace
+//
+template< typename MatrixA, typename Workspace >
+inline std::ptrdiff_t gejsv( const char joba, const char jobu,
+ const char jobv, const char jobr, const char jobt, const char jobp,
+ const MatrixA& a, const fortran_int_t lwork, Workspace work ) {
+ return gejsv_impl< typename value< MatrixA >::type >::invoke( joba,
+ jobu, jobv, jobr, jobt, jobp, a, lwork, work );
+}
+
+//
+// Overloaded function for gejsv. Its overload differs for
+// * const MatrixA&
+// * Default workspace-type (optimal)
+//
+template< typename MatrixA >
+inline std::ptrdiff_t gejsv( const char joba, const char jobu,
+ const char jobv, const char jobr, const char jobt, const char jobp,
+ const MatrixA& a, const fortran_int_t lwork ) {
+ return gejsv_impl< typename value< MatrixA >::type >::invoke( joba,
+ jobu, jobv, jobr, jobt, jobp, a, lwork, optimal_workspace() );
+}
+
+} // namespace lapack
+} // namespace bindings
+} // namespace numeric
+} // namespace boost
+
+#endif

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gels.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gels.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gels.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -55,9 +55,10 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gels( Trans, fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gels( Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t nrhs, float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb,
+ float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGELS( &lapack_option< Trans >::value, &m, &n, &nrhs, a, &lda, b,
             &ldb, work, &lwork, &info );
@@ -70,9 +71,10 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gels( Trans, fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gels( Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t nrhs, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGELS( &lapack_option< Trans >::value, &m, &n, &nrhs, a, &lda, b,
             &ldb, work, &lwork, &info );
@@ -85,10 +87,11 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gels( Trans, fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t gels( Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGELS( &lapack_option< Trans >::value, &m, &n, &nrhs, a, &lda, b,
             &ldb, work, &lwork, &info );
@@ -101,10 +104,11 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gels( Trans, fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gels( Trans, const fortran_int_t m,
+ const fortran_int_t n, const fortran_int_t nrhs,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGELS( &lapack_option< Trans >::value, &m, &n, &nrhs, a, &lda, b,
             &ldb, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,10 +54,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gelsd( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb, float* s, float rcond, fortran_int_t& rank,
- float* work, fortran_int_t lwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gelsd( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* s, const float rcond,
+ fortran_int_t& rank, float* work, const fortran_int_t lwork,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGELSD( &m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, &rank, work,
             &lwork, iwork, &info );
@@ -69,10 +70,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gelsd( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb, double* s, double rcond, fortran_int_t& rank,
- double* work, fortran_int_t lwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gelsd( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ double* b, const fortran_int_t ldb, double* s, const double rcond,
+ fortran_int_t& rank, double* work, const fortran_int_t lwork,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGELSD( &m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, &rank, work,
             &lwork, iwork, &info );
@@ -84,11 +86,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gelsd( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb, float* s, float rcond,
- fortran_int_t& rank, std::complex<float>* work, fortran_int_t lwork,
- float* rwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gelsd( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, float* s, const float rcond,
+ fortran_int_t& rank, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_CGELSD( &m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, &rank, work,
             &lwork, rwork, iwork, &info );
@@ -100,11 +103,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gelsd( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb, double* s, double rcond,
- fortran_int_t& rank, std::complex<double>* work, fortran_int_t lwork,
- double* rwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gelsd( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, double* s, const double rcond,
+ fortran_int_t& rank, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_ZGELSD( &m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, &rank, work,
             &lwork, rwork, iwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelss.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelss.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelss.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gelss( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb, float* s, float rcond, fortran_int_t& rank,
- float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gelss( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* s, const float rcond,
+ fortran_int_t& rank, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGELSS( &m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, &rank, work,
             &lwork, &info );
@@ -68,10 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gelss( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb, double* s, double rcond, fortran_int_t& rank,
- double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gelss( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ double* b, const fortran_int_t ldb, double* s, const double rcond,
+ fortran_int_t& rank, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGELSS( &m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, &rank, work,
             &lwork, &info );
@@ -83,11 +83,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gelss( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb, float* s, float rcond,
- fortran_int_t& rank, std::complex<float>* work, fortran_int_t lwork,
- float* rwork ) {
+inline std::ptrdiff_t gelss( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, float* s, const float rcond,
+ fortran_int_t& rank, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGELSS( &m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, &rank, work,
             &lwork, rwork, &info );
@@ -99,11 +100,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gelss( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb, double* s, double rcond,
- fortran_int_t& rank, std::complex<double>* work, fortran_int_t lwork,
- double* rwork ) {
+inline std::ptrdiff_t gelss( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, double* s, const double rcond,
+ fortran_int_t& rank, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGELSS( &m, &n, &nrhs, a, &lda, b, &ldb, s, &rcond, &rank, work,
             &lwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsy.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsy.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gelsy.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gelsy( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb, fortran_int_t* jpvt, float rcond,
- fortran_int_t& rank, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gelsy( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, fortran_int_t* jpvt, const float rcond,
+ fortran_int_t& rank, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGELSY( &m, &n, &nrhs, a, &lda, b, &ldb, jpvt, &rcond, &rank, work,
             &lwork, &info );
@@ -68,10 +68,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gelsy( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb, fortran_int_t* jpvt, double rcond,
- fortran_int_t& rank, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gelsy( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ double* b, const fortran_int_t ldb, fortran_int_t* jpvt,
+ const double rcond, fortran_int_t& rank, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGELSY( &m, &n, &nrhs, a, &lda, b, &ldb, jpvt, &rcond, &rank, work,
             &lwork, &info );
@@ -83,11 +84,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gelsy( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb, fortran_int_t* jpvt,
- float rcond, fortran_int_t& rank, std::complex<float>* work,
- fortran_int_t lwork, float* rwork ) {
+inline std::ptrdiff_t gelsy( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, fortran_int_t* jpvt, const float rcond,
+ fortran_int_t& rank, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGELSY( &m, &n, &nrhs, a, &lda, b, &ldb, jpvt, &rcond, &rank, work,
             &lwork, rwork, &info );
@@ -99,11 +101,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gelsy( fortran_int_t m, fortran_int_t n,
- fortran_int_t nrhs, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb, fortran_int_t* jpvt,
- double rcond, fortran_int_t& rank, std::complex<double>* work,
- fortran_int_t lwork, double* rwork ) {
+inline std::ptrdiff_t gelsy( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, fortran_int_t* jpvt, const double rcond,
+ fortran_int_t& rank, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGELSY( &m, &n, &nrhs, a, &lda, b, &ldb, jpvt, &rcond, &rank, work,
             &lwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesdd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesdd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesdd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gesdd( char jobz, fortran_int_t m, fortran_int_t n,
- float* a, fortran_int_t lda, float* s, float* u, fortran_int_t ldu,
- float* vt, fortran_int_t ldvt, float* work, fortran_int_t lwork,
+inline std::ptrdiff_t gesdd( const char jobz, const fortran_int_t m,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* s,
+ float* u, const fortran_int_t ldu, float* vt,
+ const fortran_int_t ldvt, float* work, const fortran_int_t lwork,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGESDD( &jobz, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work,
@@ -68,9 +69,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gesdd( char jobz, fortran_int_t m, fortran_int_t n,
- double* a, fortran_int_t lda, double* s, double* u, fortran_int_t ldu,
- double* vt, fortran_int_t ldvt, double* work, fortran_int_t lwork,
+inline std::ptrdiff_t gesdd( const char jobz, const fortran_int_t m,
+ const fortran_int_t n, double* a, const fortran_int_t lda, double* s,
+ double* u, const fortran_int_t ldu, double* vt,
+ const fortran_int_t ldvt, double* work, const fortran_int_t lwork,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGESDD( &jobz, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work,
@@ -83,11 +85,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gesdd( char jobz, fortran_int_t m, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, float* s,
- std::complex<float>* u, fortran_int_t ldu, std::complex<float>* vt,
- fortran_int_t ldvt, std::complex<float>* work, fortran_int_t lwork,
- float* rwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gesdd( const char jobz, const fortran_int_t m,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, float* s, std::complex<float>* u,
+ const fortran_int_t ldu, std::complex<float>* vt,
+ const fortran_int_t ldvt, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_CGESDD( &jobz, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work,
             &lwork, rwork, iwork, &info );
@@ -99,11 +102,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gesdd( char jobz, fortran_int_t m, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, double* s,
- std::complex<double>* u, fortran_int_t ldu, std::complex<double>* vt,
- fortran_int_t ldvt, std::complex<double>* work, fortran_int_t lwork,
- double* rwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t gesdd( const char jobz, const fortran_int_t m,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, double* s, std::complex<double>* u,
+ const fortran_int_t ldu, std::complex<double>* vt,
+ const fortran_int_t ldvt, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_ZGESDD( &jobz, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work,
             &lwork, rwork, iwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -58,8 +58,8 @@
 // * float value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t gesv( Order, int n, int nrhs, float* a, int lda,
- int* ipiv, float* b, int ldb ) {
+inline std::ptrdiff_t gesv( Order, const int n, const int nrhs, float* a,
+ const int lda, int* ipiv, float* b, const int ldb ) {
     return clapack_sgesv( clapack_option< Order >::value, n, nrhs, a, lda,
             ipiv, b, ldb );
 }
@@ -70,8 +70,8 @@
 // * double value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t gesv( Order, int n, int nrhs, double* a, int lda,
- int* ipiv, double* b, int ldb ) {
+inline std::ptrdiff_t gesv( Order, const int n, const int nrhs, double* a,
+ const int lda, int* ipiv, double* b, const int ldb ) {
     return clapack_dgesv( clapack_option< Order >::value, n, nrhs, a, lda,
             ipiv, b, ldb );
 }
@@ -82,8 +82,9 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t gesv( Order, int n, int nrhs, std::complex<float>* a,
- int lda, int* ipiv, std::complex<float>* b, int ldb ) {
+inline std::ptrdiff_t gesv( Order, const int n, const int nrhs,
+ std::complex<float>* a, const int lda, int* ipiv,
+ std::complex<float>* b, const int ldb ) {
     return clapack_cgesv( clapack_option< Order >::value, n, nrhs, a, lda,
             ipiv, b, ldb );
 }
@@ -94,8 +95,9 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t gesv( Order, int n, int nrhs, std::complex<double>* a,
- int lda, int* ipiv, std::complex<double>* b, int ldb ) {
+inline std::ptrdiff_t gesv( Order, const int n, const int nrhs,
+ std::complex<double>* a, const int lda, int* ipiv,
+ std::complex<double>* b, const int ldb ) {
     return clapack_zgesv( clapack_option< Order >::value, n, nrhs, a, lda,
             ipiv, b, ldb );
 }
@@ -107,9 +109,9 @@
 // * float value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t gesv( Order, fortran_int_t n, fortran_int_t nrhs,
- float* a, fortran_int_t lda, fortran_int_t* ipiv, float* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gesv( Order, const fortran_int_t n,
+ const fortran_int_t nrhs, float* a, const fortran_int_t lda,
+ fortran_int_t* ipiv, float* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_SGESV( &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
@@ -122,9 +124,9 @@
 // * double value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t gesv( Order, fortran_int_t n, fortran_int_t nrhs,
- double* a, fortran_int_t lda, fortran_int_t* ipiv, double* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t gesv( Order, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ fortran_int_t* ipiv, double* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DGESV( &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
@@ -137,9 +139,10 @@
 // * complex<float> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t gesv( Order, fortran_int_t n, fortran_int_t nrhs,
- std::complex<float>* a, fortran_int_t lda, fortran_int_t* ipiv,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t gesv( Order, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, fortran_int_t* ipiv, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CGESV( &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );
@@ -152,9 +155,10 @@
 // * complex<double> value-type.
 //
 template< typename Order >
-inline std::ptrdiff_t gesv( Order, fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* a, fortran_int_t lda, fortran_int_t* ipiv,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t gesv( Order, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, fortran_int_t* ipiv, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZGESV( &n, &nrhs, a, &lda, ipiv, b, &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gesvd( char jobu, char jobvt, fortran_int_t m,
- fortran_int_t n, float* a, fortran_int_t lda, float* s, float* u,
- fortran_int_t ldu, float* vt, fortran_int_t ldvt, float* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t gesvd( const char jobu, const char jobvt,
+ const fortran_int_t m, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* s, float* u, const fortran_int_t ldu,
+ float* vt, const fortran_int_t ldvt, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGESVD( &jobu, &jobvt, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt,
             work, &lwork, &info );
@@ -68,10 +69,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gesvd( char jobu, char jobvt, fortran_int_t m,
- fortran_int_t n, double* a, fortran_int_t lda, double* s, double* u,
- fortran_int_t ldu, double* vt, fortran_int_t ldvt, double* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t gesvd( const char jobu, const char jobvt,
+ const fortran_int_t m, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* s, double* u,
+ const fortran_int_t ldu, double* vt, const fortran_int_t ldvt,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGESVD( &jobu, &jobvt, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt,
             work, &lwork, &info );
@@ -83,11 +85,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gesvd( char jobu, char jobvt, fortran_int_t m,
- fortran_int_t n, std::complex<float>* a, fortran_int_t lda, float* s,
- std::complex<float>* u, fortran_int_t ldu, std::complex<float>* vt,
- fortran_int_t ldvt, std::complex<float>* work, fortran_int_t lwork,
- float* rwork ) {
+inline std::ptrdiff_t gesvd( const char jobu, const char jobvt,
+ const fortran_int_t m, const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, float* s, std::complex<float>* u,
+ const fortran_int_t ldu, std::complex<float>* vt,
+ const fortran_int_t ldvt, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGESVD( &jobu, &jobvt, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt,
             work, &lwork, rwork, &info );
@@ -99,11 +102,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gesvd( char jobu, char jobvt, fortran_int_t m,
- fortran_int_t n, std::complex<double>* a, fortran_int_t lda,
- double* s, std::complex<double>* u, fortran_int_t ldu,
- std::complex<double>* vt, fortran_int_t ldvt,
- std::complex<double>* work, fortran_int_t lwork, double* rwork ) {
+inline std::ptrdiff_t gesvd( const char jobu, const char jobvt,
+ const fortran_int_t m, const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, double* s, std::complex<double>* u,
+ const fortran_int_t ldu, std::complex<double>* vt,
+ const fortran_int_t ldvt, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGESVD( &jobu, &jobvt, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt,
             work, &lwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gesvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,12 +54,12 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gesvx( char fact, Trans, fortran_int_t n,
- fortran_int_t nrhs, float* a, fortran_int_t lda, float* af,
- fortran_int_t ldaf, fortran_int_t* ipiv, char& equed, float* r,
- float* c, float* b, fortran_int_t ldb, float* x, fortran_int_t ldx,
- float& rcond, float* ferr, float* berr, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t gesvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, float* a, const fortran_int_t lda,
+ float* af, const fortran_int_t ldaf, fortran_int_t* ipiv, char& equed,
+ float* r, float* c, float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float& rcond, float* ferr, float* berr,
+ float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGESVX( &fact, &lapack_option< Trans >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, &equed, r, c, b, &ldb, x, &ldx, &rcond, ferr,
@@ -73,12 +73,12 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gesvx( char fact, Trans, fortran_int_t n,
- fortran_int_t nrhs, double* a, fortran_int_t lda, double* af,
- fortran_int_t ldaf, fortran_int_t* ipiv, char& equed, double* r,
- double* c, double* b, fortran_int_t ldb, double* x, fortran_int_t ldx,
- double& rcond, double* ferr, double* berr, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t gesvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ double* af, const fortran_int_t ldaf, fortran_int_t* ipiv,
+ char& equed, double* r, double* c, double* b, const fortran_int_t ldb,
+ double* x, const fortran_int_t ldx, double& rcond, double* ferr,
+ double* berr, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGESVX( &fact, &lapack_option< Trans >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, &equed, r, c, b, &ldb, x, &ldx, &rcond, ferr,
@@ -92,13 +92,13 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gesvx( char fact, Trans, fortran_int_t n,
- fortran_int_t nrhs, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* af, fortran_int_t ldaf, fortran_int_t* ipiv,
- char& equed, float* r, float* c, std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* x, fortran_int_t ldx,
- float& rcond, float* ferr, float* berr, std::complex<float>* work,
- float* rwork ) {
+inline std::ptrdiff_t gesvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* af,
+ const fortran_int_t ldaf, fortran_int_t* ipiv, char& equed, float* r,
+ float* c, std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGESVX( &fact, &lapack_option< Trans >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, &equed, r, c, b, &ldb, x, &ldx, &rcond, ferr,
@@ -112,12 +112,13 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gesvx( char fact, Trans, fortran_int_t n,
- fortran_int_t nrhs, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* af, fortran_int_t ldaf, fortran_int_t* ipiv,
- char& equed, double* r, double* c, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double& rcond, double* ferr, double* berr, std::complex<double>* work,
+inline std::ptrdiff_t gesvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* af,
+ const fortran_int_t ldaf, fortran_int_t* ipiv, char& equed, double* r,
+ double* c, std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
+ double* ferr, double* berr, std::complex<double>* work,
         double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGESVX( &fact, &lapack_option< Trans >::value, &n, &nrhs, a, &lda,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gges.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gges.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gges.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,11 +53,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gges( char jobvsl, char jobvsr, char sort,
- logical_t* selctg, fortran_int_t n, float* a, fortran_int_t lda,
- float* b, fortran_int_t ldb, fortran_int_t& sdim, float* alphar,
- float* alphai, float* beta, float* vsl, fortran_int_t ldvsl,
- float* vsr, fortran_int_t ldvsr, float* work, fortran_int_t lwork,
+inline std::ptrdiff_t gges( const char jobvsl, const char jobvsr,
+ const char sort, logical_t* selctg, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb,
+ fortran_int_t& sdim, float* alphar, float* alphai, float* beta,
+ float* vsl, const fortran_int_t ldvsl, float* vsr,
+ const fortran_int_t ldvsr, float* work, const fortran_int_t lwork,
         logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGGES( &jobvsl, &jobvsr, &sort, &selctg, &n, a, &lda, b, &ldb,
@@ -71,11 +72,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gges( char jobvsl, char jobvsr, char sort,
- logical_t* selctg, fortran_int_t n, double* a, fortran_int_t lda,
- double* b, fortran_int_t ldb, fortran_int_t& sdim, double* alphar,
- double* alphai, double* beta, double* vsl, fortran_int_t ldvsl,
- double* vsr, fortran_int_t ldvsr, double* work, fortran_int_t lwork,
+inline std::ptrdiff_t gges( const char jobvsl, const char jobvsr,
+ const char sort, logical_t* selctg, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ fortran_int_t& sdim, double* alphar, double* alphai, double* beta,
+ double* vsl, const fortran_int_t ldvsl, double* vsr,
+ const fortran_int_t ldvsr, double* work, const fortran_int_t lwork,
         logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGGES( &jobvsl, &jobvsr, &sort, &selctg, &n, a, &lda, b, &ldb,
@@ -89,13 +91,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gges( char jobvsl, char jobvsr, char sort,
- logical_t* selctg, fortran_int_t n, std::complex<float>* a,
- fortran_int_t lda, std::complex<float>* b, fortran_int_t ldb,
- fortran_int_t& sdim, std::complex<float>* alpha,
- std::complex<float>* beta, std::complex<float>* vsl,
- fortran_int_t ldvsl, std::complex<float>* vsr, fortran_int_t ldvsr,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
+inline std::ptrdiff_t gges( const char jobvsl, const char jobvsr,
+ const char sort, logical_t* selctg, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* b, const fortran_int_t ldb, fortran_int_t& sdim,
+ std::complex<float>* alpha, std::complex<float>* beta,
+ std::complex<float>* vsl, const fortran_int_t ldvsl,
+ std::complex<float>* vsr, const fortran_int_t ldvsr,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork,
         logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGGES( &jobvsl, &jobvsr, &sort, &selctg, &n, a, &lda, b, &ldb,
@@ -109,13 +112,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gges( char jobvsl, char jobvsr, char sort,
- logical_t* selctg, fortran_int_t n, std::complex<double>* a,
- fortran_int_t lda, std::complex<double>* b, fortran_int_t ldb,
- fortran_int_t& sdim, std::complex<double>* alpha,
- std::complex<double>* beta, std::complex<double>* vsl,
- fortran_int_t ldvsl, std::complex<double>* vsr, fortran_int_t ldvsr,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
+inline std::ptrdiff_t gges( const char jobvsl, const char jobvsr,
+ const char sort, logical_t* selctg, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb, fortran_int_t& sdim,
+ std::complex<double>* alpha, std::complex<double>* beta,
+ std::complex<double>* vsl, const fortran_int_t ldvsl,
+ std::complex<double>* vsr, const fortran_int_t ldvsr,
+ std::complex<double>* work, const fortran_int_t lwork, double* rwork,
         logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGES( &jobvsl, &jobvsr, &sort, &selctg, &n, a, &lda, b, &ldb,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggesx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggesx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggesx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,13 +53,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggesx( char jobvsl, char jobvsr, char sort,
- logical_t* selctg, char sense, fortran_int_t n, float* a,
- fortran_int_t lda, float* b, fortran_int_t ldb, fortran_int_t& sdim,
- float* alphar, float* alphai, float* beta, float* vsl,
- fortran_int_t ldvsl, float* vsr, fortran_int_t ldvsr, float* rconde,
- float* rcondv, float* work, fortran_int_t lwork, fortran_int_t* iwork,
- fortran_int_t liwork, logical_t* bwork ) {
+inline std::ptrdiff_t ggesx( const char jobvsl, const char jobvsr,
+ const char sort, logical_t* selctg, const char sense,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, fortran_int_t& sdim, float* alphar,
+ float* alphai, float* beta, float* vsl, const fortran_int_t ldvsl,
+ float* vsr, const fortran_int_t ldvsr, float* rconde, float* rcondv,
+ float* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGGESX( &jobvsl, &jobvsr, &sort, &selctg, &sense, &n, a, &lda, b,
             &ldb, &sdim, alphar, alphai, beta, vsl, &ldvsl, vsr, &ldvsr,
@@ -72,13 +73,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggesx( char jobvsl, char jobvsr, char sort,
- logical_t* selctg, char sense, fortran_int_t n, double* a,
- fortran_int_t lda, double* b, fortran_int_t ldb, fortran_int_t& sdim,
- double* alphar, double* alphai, double* beta, double* vsl,
- fortran_int_t ldvsl, double* vsr, fortran_int_t ldvsr, double* rconde,
- double* rcondv, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork, logical_t* bwork ) {
+inline std::ptrdiff_t ggesx( const char jobvsl, const char jobvsr,
+ const char sort, logical_t* selctg, const char sense,
+ const fortran_int_t n, double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, fortran_int_t& sdim, double* alphar,
+ double* alphai, double* beta, double* vsl, const fortran_int_t ldvsl,
+ double* vsr, const fortran_int_t ldvsr, double* rconde,
+ double* rcondv, double* work, const fortran_int_t lwork,
+ fortran_int_t* iwork, const fortran_int_t liwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGGESX( &jobvsl, &jobvsr, &sort, &selctg, &sense, &n, a, &lda, b,
             &ldb, &sdim, alphar, alphai, beta, vsl, &ldvsl, vsr, &ldvsr,
@@ -91,15 +93,17 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggesx( char jobvsl, char jobvsr, char sort,
- logical_t* selctg, char sense, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, fortran_int_t& sdim, std::complex<float>* alpha,
- std::complex<float>* beta, std::complex<float>* vsl,
- fortran_int_t ldvsl, std::complex<float>* vsr, fortran_int_t ldvsr,
- float* rconde, float* rcondv, std::complex<float>* work,
- fortran_int_t lwork, float* rwork, fortran_int_t* iwork,
- fortran_int_t liwork, logical_t* bwork ) {
+inline std::ptrdiff_t ggesx( const char jobvsl, const char jobvsr,
+ const char sort, logical_t* selctg, const char sense,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, fortran_int_t& sdim,
+ std::complex<float>* alpha, std::complex<float>* beta,
+ std::complex<float>* vsl, const fortran_int_t ldvsl,
+ std::complex<float>* vsr, const fortran_int_t ldvsr, float* rconde,
+ float* rcondv, std::complex<float>* work, const fortran_int_t lwork,
+ float* rwork, fortran_int_t* iwork, const fortran_int_t liwork,
+ logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGGESX( &jobvsl, &jobvsr, &sort, &selctg, &sense, &n, a, &lda, b,
             &ldb, &sdim, alpha, beta, vsl, &ldvsl, vsr, &ldvsr, rconde,
@@ -112,15 +116,17 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggesx( char jobvsl, char jobvsr, char sort,
- logical_t* selctg, char sense, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, fortran_int_t& sdim, std::complex<double>* alpha,
- std::complex<double>* beta, std::complex<double>* vsl,
- fortran_int_t ldvsl, std::complex<double>* vsr, fortran_int_t ldvsr,
- double* rconde, double* rcondv, std::complex<double>* work,
- fortran_int_t lwork, double* rwork, fortran_int_t* iwork,
- fortran_int_t liwork, logical_t* bwork ) {
+inline std::ptrdiff_t ggesx( const char jobvsl, const char jobvsr,
+ const char sort, logical_t* selctg, const char sense,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, fortran_int_t& sdim,
+ std::complex<double>* alpha, std::complex<double>* beta,
+ std::complex<double>* vsl, const fortran_int_t ldvsl,
+ std::complex<double>* vsr, const fortran_int_t ldvsr, double* rconde,
+ double* rcondv, std::complex<double>* work, const fortran_int_t lwork,
+ double* rwork, fortran_int_t* iwork, const fortran_int_t liwork,
+ logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGESX( &jobvsl, &jobvsr, &sort, &selctg, &sense, &n, a, &lda, b,
             &ldb, &sdim, alpha, beta, vsl, &ldvsl, vsr, &ldvsr, rconde,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,10 +53,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggev( char jobvl, char jobvr, fortran_int_t n, float* a,
- fortran_int_t lda, float* b, fortran_int_t ldb, float* alphar,
- float* alphai, float* beta, float* vl, fortran_int_t ldvl, float* vr,
- fortran_int_t ldvr, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggev( const char jobvl, const char jobvr,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* alphar, float* alphai, float* beta,
+ float* vl, const fortran_int_t ldvl, float* vr,
+ const fortran_int_t ldvr, float* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGGEV( &jobvl, &jobvr, &n, a, &lda, b, &ldb, alphar, alphai, beta,
             vl, &ldvl, vr, &ldvr, work, &lwork, &info );
@@ -68,10 +69,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggev( char jobvl, char jobvr, fortran_int_t n, double* a,
- fortran_int_t lda, double* b, fortran_int_t ldb, double* alphar,
- double* alphai, double* beta, double* vl, fortran_int_t ldvl,
- double* vr, fortran_int_t ldvr, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggev( const char jobvl, const char jobvr,
+ const fortran_int_t n, double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, double* alphar, double* alphai, double* beta,
+ double* vl, const fortran_int_t ldvl, double* vr,
+ const fortran_int_t ldvr, double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGGEV( &jobvl, &jobvr, &n, a, &lda, b, &ldb, alphar, alphai, beta,
             vl, &ldvl, vr, &ldvr, work, &lwork, &info );
@@ -83,12 +85,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggev( char jobvl, char jobvr, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* alpha,
+inline std::ptrdiff_t ggev( const char jobvl, const char jobvr,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* alpha,
         std::complex<float>* beta, std::complex<float>* vl,
- fortran_int_t ldvl, std::complex<float>* vr, fortran_int_t ldvr,
- std::complex<float>* work, fortran_int_t lwork, float* rwork ) {
+ const fortran_int_t ldvl, std::complex<float>* vr,
+ const fortran_int_t ldvr, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGGEV( &jobvl, &jobvr, &n, a, &lda, b, &ldb, alpha, beta, vl,
             &ldvl, vr, &ldvr, work, &lwork, rwork, &info );
@@ -100,12 +104,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggev( char jobvl, char jobvr, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* alpha,
+inline std::ptrdiff_t ggev( const char jobvl, const char jobvr,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* alpha,
         std::complex<double>* beta, std::complex<double>* vl,
- fortran_int_t ldvl, std::complex<double>* vr, fortran_int_t ldvr,
- std::complex<double>* work, fortran_int_t lwork, double* rwork ) {
+ const fortran_int_t ldvl, std::complex<double>* vr,
+ const fortran_int_t ldvr, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGEV( &jobvl, &jobvr, &n, a, &lda, b, &ldb, alpha, beta, vl,
             &ldvl, vr, &ldvr, work, &lwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,13 +53,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggevx( char balanc, char jobvl, char jobvr, char sense,
- fortran_int_t n, float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb, float* alphar, float* alphai, float* beta,
- float* vl, fortran_int_t ldvl, float* vr, fortran_int_t ldvr,
+inline std::ptrdiff_t ggevx( const char balanc, const char jobvl,
+ const char jobvr, const char sense, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb,
+ float* alphar, float* alphai, float* beta, float* vl,
+ const fortran_int_t ldvl, float* vr, const fortran_int_t ldvr,
         fortran_int_t& ilo, fortran_int_t& ihi, float* lscale, float* rscale,
         float& abnrm, float& bbnrm, float* rconde, float* rcondv, float* work,
- fortran_int_t lwork, fortran_int_t* iwork, logical_t* bwork ) {
+ const fortran_int_t lwork, fortran_int_t* iwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_SGGEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, b, &ldb,
             alphar, alphai, beta, vl, &ldvl, vr, &ldvr, &ilo, &ihi, lscale,
@@ -73,13 +74,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggevx( char balanc, char jobvl, char jobvr, char sense,
- fortran_int_t n, double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb, double* alphar, double* alphai, double* beta,
- double* vl, fortran_int_t ldvl, double* vr, fortran_int_t ldvr,
+inline std::ptrdiff_t ggevx( const char balanc, const char jobvl,
+ const char jobvr, const char sense, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ double* alphar, double* alphai, double* beta, double* vl,
+ const fortran_int_t ldvl, double* vr, const fortran_int_t ldvr,
         fortran_int_t& ilo, fortran_int_t& ihi, double* lscale,
         double* rscale, double& abnrm, double& bbnrm, double* rconde,
- double* rcondv, double* work, fortran_int_t lwork,
+ double* rcondv, double* work, const fortran_int_t lwork,
         fortran_int_t* iwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_DGGEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, b, &ldb,
@@ -94,15 +96,17 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggevx( char balanc, char jobvl, char jobvr, char sense,
- fortran_int_t n, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb, std::complex<float>* alpha,
- std::complex<float>* beta, std::complex<float>* vl,
- fortran_int_t ldvl, std::complex<float>* vr, fortran_int_t ldvr,
- fortran_int_t& ilo, fortran_int_t& ihi, float* lscale, float* rscale,
- float& abnrm, float& bbnrm, float* rconde, float* rcondv,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
- fortran_int_t* iwork, logical_t* bwork ) {
+inline std::ptrdiff_t ggevx( const char balanc, const char jobvl,
+ const char jobvr, const char sense, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda,
+ std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* alpha, std::complex<float>* beta,
+ std::complex<float>* vl, const fortran_int_t ldvl,
+ std::complex<float>* vr, const fortran_int_t ldvr, fortran_int_t& ilo,
+ fortran_int_t& ihi, float* lscale, float* rscale, float& abnrm,
+ float& bbnrm, float* rconde, float* rcondv, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, fortran_int_t* iwork,
+ logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_CGGEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, b, &ldb,
             alpha, beta, vl, &ldvl, vr, &ldvr, &ilo, &ihi, lscale, rscale,
@@ -116,16 +120,17 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggevx( char balanc, char jobvl, char jobvr, char sense,
- fortran_int_t n, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb,
+inline std::ptrdiff_t ggevx( const char balanc, const char jobvl,
+ const char jobvr, const char sense, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb,
         std::complex<double>* alpha, std::complex<double>* beta,
- std::complex<double>* vl, fortran_int_t ldvl,
- std::complex<double>* vr, fortran_int_t ldvr, fortran_int_t& ilo,
- fortran_int_t& ihi, double* lscale, double* rscale, double& abnrm,
- double& bbnrm, double* rconde, double* rcondv,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
- fortran_int_t* iwork, logical_t* bwork ) {
+ std::complex<double>* vl, const fortran_int_t ldvl,
+ std::complex<double>* vr, const fortran_int_t ldvr,
+ fortran_int_t& ilo, fortran_int_t& ihi, double* lscale,
+ double* rscale, double& abnrm, double& bbnrm, double* rconde,
+ double* rcondv, std::complex<double>* work, const fortran_int_t lwork,
+ double* rwork, fortran_int_t* iwork, logical_t* bwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGEVX( &balanc, &jobvl, &jobvr, &sense, &n, a, &lda, b, &ldb,
             alpha, beta, vl, &ldvl, vr, &ldvr, &ilo, &ihi, lscale, rscale,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggglm.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggglm( fortran_int_t n, fortran_int_t m, fortran_int_t p,
- float* a, fortran_int_t lda, float* b, fortran_int_t ldb, float* d,
- float* x, float* y, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggglm( const fortran_int_t n, const fortran_int_t m,
+ const fortran_int_t p, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* d, float* x, float* y, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGGGLM( &n, &m, &p, a, &lda, b, &ldb, d, x, y, work, &lwork,
             &info );
@@ -67,9 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggglm( fortran_int_t n, fortran_int_t m, fortran_int_t p,
- double* a, fortran_int_t lda, double* b, fortran_int_t ldb, double* d,
- double* x, double* y, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t ggglm( const fortran_int_t n, const fortran_int_t m,
+ const fortran_int_t p, double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, double* d, double* x, double* y,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGGGLM( &n, &m, &p, a, &lda, b, &ldb, d, x, y, work, &lwork,
             &info );
@@ -81,11 +83,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggglm( fortran_int_t n, fortran_int_t m, fortran_int_t p,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* d, std::complex<float>* x,
- std::complex<float>* y, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ggglm( const fortran_int_t n, const fortran_int_t m,
+ const fortran_int_t p, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* d,
+ std::complex<float>* x, std::complex<float>* y,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGGGLM( &n, &m, &p, a, &lda, b, &ldb, d, x, y, work, &lwork,
             &info );
@@ -97,11 +100,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggglm( fortran_int_t n, fortran_int_t m, fortran_int_t p,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* d, std::complex<double>* x,
- std::complex<double>* y, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t ggglm( const fortran_int_t n, const fortran_int_t m,
+ const fortran_int_t p, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* d,
+ std::complex<double>* x, std::complex<double>* y,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGGLM( &n, &m, &p, a, &lda, b, &ldb, d, x, y, work, &lwork,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gglse.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gglse.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gglse.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gglse( fortran_int_t m, fortran_int_t n, fortran_int_t p,
- float* a, fortran_int_t lda, float* b, fortran_int_t ldb, float* c,
- float* d, float* x, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gglse( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t p, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* c, float* d, float* x, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SGGLSE( &m, &n, &p, a, &lda, b, &ldb, c, d, x, work, &lwork,
             &info );
@@ -67,9 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gglse( fortran_int_t m, fortran_int_t n, fortran_int_t p,
- double* a, fortran_int_t lda, double* b, fortran_int_t ldb, double* c,
- double* d, double* x, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t gglse( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t p, double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, double* c, double* d, double* x,
+ double* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DGGLSE( &m, &n, &p, a, &lda, b, &ldb, c, d, x, work, &lwork,
             &info );
@@ -81,11 +83,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gglse( fortran_int_t m, fortran_int_t n, fortran_int_t p,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* c, std::complex<float>* d,
- std::complex<float>* x, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t gglse( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t p, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* c,
+ std::complex<float>* d, std::complex<float>* x,
+ std::complex<float>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CGGLSE( &m, &n, &p, a, &lda, b, &ldb, c, d, x, work, &lwork,
             &info );
@@ -97,11 +100,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gglse( fortran_int_t m, fortran_int_t n, fortran_int_t p,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* c, std::complex<double>* d,
- std::complex<double>* x, std::complex<double>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t gglse( const fortran_int_t m, const fortran_int_t n,
+ const fortran_int_t p, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* c,
+ std::complex<double>* d, std::complex<double>* x,
+ std::complex<double>* work, const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGLSE( &m, &n, &p, a, &lda, b, &ldb, c, d, x, work, &lwork,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggsvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggsvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ggsvd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ggsvd( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t n, fortran_int_t p, fortran_int_t& k, fortran_int_t& l,
- float* a, fortran_int_t lda, float* b, fortran_int_t ldb,
- float* alpha, float* beta, float* u, fortran_int_t ldu, float* v,
- fortran_int_t ldv, float* q, fortran_int_t ldq, float* work,
+inline std::ptrdiff_t ggsvd( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t n, const fortran_int_t p,
+ fortran_int_t& k, fortran_int_t& l, float* a, const fortran_int_t lda,
+ float* b, const fortran_int_t ldb, float* alpha, float* beta,
+ float* u, const fortran_int_t ldu, float* v, const fortran_int_t ldv,
+ float* q, const fortran_int_t ldq, float* work,
         fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGGSVD( &jobu, &jobv, &jobq, &m, &n, &p, &k, &l, a, &lda, b, &ldb,
@@ -69,12 +70,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ggsvd( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t n, fortran_int_t p, fortran_int_t& k, fortran_int_t& l,
- double* a, fortran_int_t lda, double* b, fortran_int_t ldb,
- double* alpha, double* beta, double* u, fortran_int_t ldu, double* v,
- fortran_int_t ldv, double* q, fortran_int_t ldq, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t ggsvd( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t n, const fortran_int_t p,
+ fortran_int_t& k, fortran_int_t& l, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ double* alpha, double* beta, double* u, const fortran_int_t ldu,
+ double* v, const fortran_int_t ldv, double* q,
+ const fortran_int_t ldq, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGGSVD( &jobu, &jobv, &jobq, &m, &n, &p, &k, &l, a, &lda, b, &ldb,
             alpha, beta, u, &ldu, v, &ldv, q, &ldq, work, iwork, &info );
@@ -86,13 +88,15 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ggsvd( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t n, fortran_int_t p, fortran_int_t& k, fortran_int_t& l,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb, float* alpha, float* beta, std::complex<float>* u,
- fortran_int_t ldu, std::complex<float>* v, fortran_int_t ldv,
- std::complex<float>* q, fortran_int_t ldq, std::complex<float>* work,
- float* rwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t ggsvd( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t n, const fortran_int_t p,
+ fortran_int_t& k, fortran_int_t& l, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, float* alpha, float* beta,
+ std::complex<float>* u, const fortran_int_t ldu,
+ std::complex<float>* v, const fortran_int_t ldv,
+ std::complex<float>* q, const fortran_int_t ldq,
+ std::complex<float>* work, float* rwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_CGGSVD( &jobu, &jobv, &jobq, &m, &n, &p, &k, &l, a, &lda, b, &ldb,
             alpha, beta, u, &ldu, v, &ldv, q, &ldq, work, rwork, iwork,
@@ -105,12 +109,14 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ggsvd( char jobu, char jobv, char jobq, fortran_int_t m,
- fortran_int_t n, fortran_int_t p, fortran_int_t& k, fortran_int_t& l,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb, double* alpha, double* beta,
- std::complex<double>* u, fortran_int_t ldu, std::complex<double>* v,
- fortran_int_t ldv, std::complex<double>* q, fortran_int_t ldq,
+inline std::ptrdiff_t ggsvd( const char jobu, const char jobv, const char jobq,
+ const fortran_int_t m, const fortran_int_t n, const fortran_int_t p,
+ fortran_int_t& k, fortran_int_t& l, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, double* alpha, double* beta,
+ std::complex<double>* u, const fortran_int_t ldu,
+ std::complex<double>* v, const fortran_int_t ldv,
+ std::complex<double>* q, const fortran_int_t ldq,
         std::complex<double>* work, double* rwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_ZGGSVD( &jobu, &jobv, &jobq, &m, &n, &p, &k, &l, a, &lda, b, &ldb,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -47,8 +47,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t gtsv( fortran_int_t n, fortran_int_t nrhs, float* dl,
- float* d, float* du, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t gtsv( const fortran_int_t n, const fortran_int_t nrhs,
+ float* dl, float* d, float* du, float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SGTSV( &n, &nrhs, dl, d, du, b, &ldb, &info );
     return info;
@@ -59,8 +59,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t gtsv( fortran_int_t n, fortran_int_t nrhs, double* dl,
- double* d, double* du, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t gtsv( const fortran_int_t n, const fortran_int_t nrhs,
+ double* dl, double* d, double* du, double* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DGTSV( &n, &nrhs, dl, d, du, b, &ldb, &info );
     return info;
@@ -71,9 +72,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t gtsv( fortran_int_t n, fortran_int_t nrhs,
+inline std::ptrdiff_t gtsv( const fortran_int_t n, const fortran_int_t nrhs,
         std::complex<float>* dl, std::complex<float>* d,
- std::complex<float>* du, std::complex<float>* b, fortran_int_t ldb ) {
+ std::complex<float>* du, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CGTSV( &n, &nrhs, dl, d, du, b, &ldb, &info );
     return info;
@@ -84,10 +86,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t gtsv( fortran_int_t n, fortran_int_t nrhs,
+inline std::ptrdiff_t gtsv( const fortran_int_t n, const fortran_int_t nrhs,
         std::complex<double>* dl, std::complex<double>* d,
         std::complex<double>* du, std::complex<double>* b,
- fortran_int_t ldb ) {
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZGTSV( &n, &nrhs, dl, d, du, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/gtsvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,12 +54,12 @@
 // * float value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gtsvx( char fact, Trans, fortran_int_t n,
- fortran_int_t nrhs, const float* dl, const float* d, const float* du,
- float* dlf, float* df, float* duf, float* du2, fortran_int_t* ipiv,
- const float* b, fortran_int_t ldb, float* x, fortran_int_t ldx,
- float& rcond, float* ferr, float* berr, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t gtsvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* dl, const float* d,
+ const float* du, float* dlf, float* df, float* duf, float* du2,
+ fortran_int_t* ipiv, const float* b, const fortran_int_t ldb,
+ float* x, const fortran_int_t ldx, float& rcond, float* ferr,
+ float* berr, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SGTSVX( &fact, &lapack_option< Trans >::value, &n, &nrhs, dl, d,
             du, dlf, df, duf, du2, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr,
@@ -73,12 +73,12 @@
 // * double value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gtsvx( char fact, Trans, fortran_int_t n,
- fortran_int_t nrhs, const double* dl, const double* d,
+inline std::ptrdiff_t gtsvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* dl, const double* d,
         const double* du, double* dlf, double* df, double* duf, double* du2,
- fortran_int_t* ipiv, const double* b, fortran_int_t ldb, double* x,
- fortran_int_t ldx, double& rcond, double* ferr, double* berr,
- double* work, fortran_int_t* iwork ) {
+ fortran_int_t* ipiv, const double* b, const fortran_int_t ldb,
+ double* x, const fortran_int_t ldx, double& rcond, double* ferr,
+ double* berr, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DGTSVX( &fact, &lapack_option< Trans >::value, &n, &nrhs, dl, d,
             du, dlf, df, duf, du2, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr,
@@ -92,14 +92,15 @@
 // * complex<float> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gtsvx( char fact, Trans, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* dl,
+inline std::ptrdiff_t gtsvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* dl,
         const std::complex<float>* d, const std::complex<float>* du,
         std::complex<float>* dlf, std::complex<float>* df,
         std::complex<float>* duf, std::complex<float>* du2,
- fortran_int_t* ipiv, const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float& rcond, float* ferr,
- float* berr, std::complex<float>* work, float* rwork ) {
+ fortran_int_t* ipiv, const std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* x,
+ const fortran_int_t ldx, float& rcond, float* ferr, float* berr,
+ std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CGTSVX( &fact, &lapack_option< Trans >::value, &n, &nrhs, dl, d,
             du, dlf, df, duf, du2, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr,
@@ -113,15 +114,15 @@
 // * complex<double> value-type.
 //
 template< typename Trans >
-inline std::ptrdiff_t gtsvx( char fact, Trans, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* dl,
+inline std::ptrdiff_t gtsvx( const char fact, Trans, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* dl,
         const std::complex<double>* d, const std::complex<double>* du,
         std::complex<double>* dlf, std::complex<double>* df,
         std::complex<double>* duf, std::complex<double>* du2,
- fortran_int_t* ipiv, const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double& rcond,
- double* ferr, double* berr, std::complex<double>* work,
- double* rwork ) {
+ fortran_int_t* ipiv, const std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* x,
+ const fortran_int_t ldx, double& rcond, double* ferr, double* berr,
+ std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZGTSVX( &fact, &lapack_option< Trans >::value, &n, &nrhs, dl, d,
             du, dlf, df, duf, du2, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,10 +51,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbev( char jobz, UpLo, fortran_int_t n, fortran_int_t kd,
- std::complex<float>* ab, fortran_int_t ldab, float* w,
- std::complex<float>* z, fortran_int_t ldz, std::complex<float>* work,
- float* rwork ) {
+inline std::ptrdiff_t hbev( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<float>* ab,
+ const fortran_int_t ldab, float* w, std::complex<float>* z,
+ const fortran_int_t ldz, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHBEV( &jobz, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, w,
             z, &ldz, work, rwork, &info );
@@ -67,10 +67,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbev( char jobz, UpLo, fortran_int_t n, fortran_int_t kd,
- std::complex<double>* ab, fortran_int_t ldab, double* w,
- std::complex<double>* z, fortran_int_t ldz,
- std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t hbev( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<double>* ab,
+ const fortran_int_t ldab, double* w, std::complex<double>* z,
+ const fortran_int_t ldz, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHBEV( &jobz, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, w,
             z, &ldz, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbevd( char jobz, UpLo, fortran_int_t n,
- fortran_int_t kd, std::complex<float>* ab, fortran_int_t ldab,
- float* w, std::complex<float>* z, fortran_int_t ldz,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t hbevd( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<float>* ab,
+ const fortran_int_t ldab, float* w, std::complex<float>* z,
+ const fortran_int_t ldz, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CHBEVD( &jobz, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab,
             w, z, &ldz, work, &lwork, rwork, &lrwork, iwork, &liwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbevd( char jobz, UpLo, fortran_int_t n,
- fortran_int_t kd, std::complex<double>* ab, fortran_int_t ldab,
- double* w, std::complex<double>* z, fortran_int_t ldz,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t hbevd( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, std::complex<double>* ab,
+ const fortran_int_t ldab, double* w, std::complex<double>* z,
+ const fortran_int_t ldz, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZHBEVD( &jobz, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab,
             w, z, &ldz, work, &lwork, rwork, &lrwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,11 +51,13 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbevx( char jobz, char range, UpLo, fortran_int_t n,
- fortran_int_t kd, std::complex<float>* ab, fortran_int_t ldab,
- std::complex<float>* q, fortran_int_t ldq, float vl, float vu,
- fortran_int_t il, fortran_int_t iu, float abstol, fortran_int_t& m,
- float* w, std::complex<float>* z, fortran_int_t ldz,
+inline std::ptrdiff_t hbevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, const fortran_int_t kd,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ std::complex<float>* q, const fortran_int_t ldq, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ const float abstol, fortran_int_t& m, float* w,
+ std::complex<float>* z, const fortran_int_t ldz,
         std::complex<float>* work, float* rwork, fortran_int_t* iwork,
         fortran_int_t* ifail ) {
     fortran_int_t info(0);
@@ -71,11 +73,13 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbevx( char jobz, char range, UpLo, fortran_int_t n,
- fortran_int_t kd, std::complex<double>* ab, fortran_int_t ldab,
- std::complex<double>* q, fortran_int_t ldq, double vl, double vu,
- fortran_int_t il, fortran_int_t iu, double abstol, fortran_int_t& m,
- double* w, std::complex<double>* z, fortran_int_t ldz,
+inline std::ptrdiff_t hbevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, const fortran_int_t kd,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ std::complex<double>* q, const fortran_int_t ldq, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w,
+ std::complex<double>* z, const fortran_int_t ldz,
         std::complex<double>* work, double* rwork, fortran_int_t* iwork,
         fortran_int_t* ifail ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,11 +51,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbgv( char jobz, UpLo, fortran_int_t n, fortran_int_t ka,
- fortran_int_t kb, std::complex<float>* ab, fortran_int_t ldab,
- std::complex<float>* bb, fortran_int_t ldbb, float* w,
- std::complex<float>* z, fortran_int_t ldz, std::complex<float>* work,
- float* rwork ) {
+inline std::ptrdiff_t hbgv( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ std::complex<float>* bb, const fortran_int_t ldbb, float* w,
+ std::complex<float>* z, const fortran_int_t ldz,
+ std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHBGV( &jobz, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, w, z, &ldz, work, rwork, &info );
@@ -68,10 +69,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbgv( char jobz, UpLo, fortran_int_t n, fortran_int_t ka,
- fortran_int_t kb, std::complex<double>* ab, fortran_int_t ldab,
- std::complex<double>* bb, fortran_int_t ldbb, double* w,
- std::complex<double>* z, fortran_int_t ldz,
+inline std::ptrdiff_t hbgv( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ std::complex<double>* bb, const fortran_int_t ldbb, double* w,
+ std::complex<double>* z, const fortran_int_t ldz,
         std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHBGV( &jobz, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,12 +52,14 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbgvd( char jobz, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, std::complex<float>* ab,
- fortran_int_t ldab, std::complex<float>* bb, fortran_int_t ldbb,
- float* w, std::complex<float>* z, fortran_int_t ldz,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t hbgvd( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ std::complex<float>* bb, const fortran_int_t ldbb, float* w,
+ std::complex<float>* z, const fortran_int_t ldz,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork,
+ const fortran_int_t lrwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CHBGVD( &jobz, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, w, z, &ldz, work, &lwork, rwork, &lrwork, iwork,
@@ -71,12 +73,14 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbgvd( char jobz, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, std::complex<double>* ab,
- fortran_int_t ldab, std::complex<double>* bb, fortran_int_t ldbb,
- double* w, std::complex<double>* z, fortran_int_t ldz,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t hbgvd( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ std::complex<double>* bb, const fortran_int_t ldbb, double* w,
+ std::complex<double>* z, const fortran_int_t ldz,
+ std::complex<double>* work, const fortran_int_t lwork, double* rwork,
+ const fortran_int_t lrwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZHBGVD( &jobz, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, w, z, &ldz, work, &lwork, rwork, &lrwork, iwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hbgvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,12 +51,14 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbgvx( char jobz, char range, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, std::complex<float>* ab,
- fortran_int_t ldab, std::complex<float>* bb, fortran_int_t ldbb,
- std::complex<float>* q, fortran_int_t ldq, float vl, float vu,
- fortran_int_t il, fortran_int_t iu, float abstol, fortran_int_t& m,
- float* w, std::complex<float>* z, fortran_int_t ldz,
+inline std::ptrdiff_t hbgvx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, const fortran_int_t ka, const fortran_int_t kb,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ std::complex<float>* bb, const fortran_int_t ldbb,
+ std::complex<float>* q, const fortran_int_t ldq, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ const float abstol, fortran_int_t& m, float* w,
+ std::complex<float>* z, const fortran_int_t ldz,
         std::complex<float>* work, float* rwork, fortran_int_t* iwork,
         fortran_int_t* ifail ) {
     fortran_int_t info(0);
@@ -72,12 +74,14 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hbgvx( char jobz, char range, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, std::complex<double>* ab,
- fortran_int_t ldab, std::complex<double>* bb, fortran_int_t ldbb,
- std::complex<double>* q, fortran_int_t ldq, double vl, double vu,
- fortran_int_t il, fortran_int_t iu, double abstol, fortran_int_t& m,
- double* w, std::complex<double>* z, fortran_int_t ldz,
+inline std::ptrdiff_t hbgvx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, const fortran_int_t ka, const fortran_int_t kb,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ std::complex<double>* bb, const fortran_int_t ldbb,
+ std::complex<double>* q, const fortran_int_t ldq, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w,
+ std::complex<double>* z, const fortran_int_t ldz,
         std::complex<double>* work, double* rwork, fortran_int_t* iwork,
         fortran_int_t* ifail ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t heev( char jobz, UpLo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, float* w,
- std::complex<float>* work, fortran_int_t lwork, float* rwork ) {
+inline std::ptrdiff_t heev( const char jobz, UpLo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, float* w,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHEEV( &jobz, &lapack_option< UpLo >::value, &n, a, &lda, w, work,
             &lwork, rwork, &info );
@@ -67,9 +67,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t heev( char jobz, UpLo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, double* w,
- std::complex<double>* work, fortran_int_t lwork, double* rwork ) {
+inline std::ptrdiff_t heev( const char jobz, UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, double* w,
+ std::complex<double>* work, const fortran_int_t lwork,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHEEV( &jobz, &lapack_option< UpLo >::value, &n, a, &lda, w, work,
             &lwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t heevd( char jobz, UpLo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, float* w,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t heevd( const char jobz, UpLo, const fortran_int_t n,
+ std::complex<float>* a, const fortran_int_t lda, float* w,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork,
+ const fortran_int_t lrwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CHEEVD( &jobz, &lapack_option< UpLo >::value, &n, a, &lda, w, work,
             &lwork, rwork, &lrwork, iwork, &liwork, &info );
@@ -68,10 +69,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t heevd( char jobz, UpLo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, double* w,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t heevd( const char jobz, UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda, double* w,
+ std::complex<double>* work, const fortran_int_t lwork, double* rwork,
+ const fortran_int_t lrwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZHEEVD( &jobz, &lapack_option< UpLo >::value, &n, a, &lda, w, work,
             &lwork, rwork, &lrwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,13 +52,15 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t heevr( char jobz, char range, UpLo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, float vl, float vu,
- fortran_int_t il, fortran_int_t iu, float abstol, fortran_int_t& m,
- float* w, std::complex<float>* z, fortran_int_t ldz,
- fortran_int_t* isuppz, std::complex<float>* work, fortran_int_t lwork,
- float* rwork, fortran_int_t lrwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+inline std::ptrdiff_t heevr( const char jobz, const char range, UpLo,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, const float vl, const float vu,
+ const fortran_int_t il, const fortran_int_t iu, const float abstol,
+ fortran_int_t& m, float* w, std::complex<float>* z,
+ const fortran_int_t ldz, fortran_int_t* isuppz,
+ std::complex<float>* work, const fortran_int_t lwork, float* rwork,
+ const fortran_int_t lrwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CHEEVR( &jobz, &range, &lapack_option< UpLo >::value, &n, a, &lda,
             &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, isuppz, work, &lwork,
@@ -72,13 +74,15 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t heevr( char jobz, char range, UpLo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, double vl, double vu,
- fortran_int_t il, fortran_int_t iu, double abstol, fortran_int_t& m,
- double* w, std::complex<double>* z, fortran_int_t ldz,
- fortran_int_t* isuppz, std::complex<double>* work,
- fortran_int_t lwork, double* rwork, fortran_int_t lrwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t heevr( const char jobz, const char range, UpLo,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, const double vl, const double vu,
+ const fortran_int_t il, const fortran_int_t iu, const double abstol,
+ fortran_int_t& m, double* w, std::complex<double>* z,
+ const fortran_int_t ldz, fortran_int_t* isuppz,
+ std::complex<double>* work, const fortran_int_t lwork, double* rwork,
+ const fortran_int_t lrwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZHEEVR( &jobz, &range, &lapack_option< UpLo >::value, &n, a, &lda,
             &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, isuppz, work, &lwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/heevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,12 +52,14 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t heevx( char jobz, char range, UpLo, fortran_int_t n,
- std::complex<float>* a, fortran_int_t lda, float vl, float vu,
- fortran_int_t il, fortran_int_t iu, float abstol, fortran_int_t& m,
- float* w, std::complex<float>* z, fortran_int_t ldz,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t heevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, const float vl, const float vu,
+ const fortran_int_t il, const fortran_int_t iu, const float abstol,
+ fortran_int_t& m, float* w, std::complex<float>* z,
+ const fortran_int_t ldz, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_CHEEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, a, &lda,
             &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, work, &lwork, rwork,
@@ -71,12 +73,14 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t heevx( char jobz, char range, UpLo, fortran_int_t n,
- std::complex<double>* a, fortran_int_t lda, double vl, double vu,
- fortran_int_t il, fortran_int_t iu, double abstol, fortran_int_t& m,
- double* w, std::complex<double>* z, fortran_int_t ldz,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t heevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, const double vl, const double vu,
+ const fortran_int_t il, const fortran_int_t iu, const double abstol,
+ fortran_int_t& m, double* w, std::complex<double>* z,
+ const fortran_int_t ldz, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_ZHEEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, a, &lda,
             &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, work, &lwork, rwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hegv( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb, float* w,
- std::complex<float>* work, fortran_int_t lwork, float* rwork ) {
+inline std::ptrdiff_t hegv( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, float* w, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHEGV( &itype, &jobz, &lapack_option< UpLo >::value, &n, a, &lda,
             b, &ldb, w, work, &lwork, rwork, &info );
@@ -68,10 +69,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hegv( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb, double* w,
- std::complex<double>* work, fortran_int_t lwork, double* rwork ) {
+inline std::ptrdiff_t hegv( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, double* w, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHEGV( &itype, &jobz, &lapack_option< UpLo >::value, &n, a, &lda,
             b, &ldb, w, work, &lwork, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hegvd( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb, float* w,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t hegvd( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, float* w, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CHEGVD( &itype, &jobz, &lapack_option< UpLo >::value, &n, a, &lda,
             b, &ldb, w, work, &lwork, rwork, &lrwork, iwork, &liwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hegvd( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb, double* w,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t hegvd( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb, double* w, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZHEGVD( &itype, &jobz, &lapack_option< UpLo >::value, &n, a, &lda,
             b, &ldb, w, work, &lwork, rwork, &lrwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hegvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,13 +52,15 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hegvx( fortran_int_t itype, char jobz, char range, UpLo,
- fortran_int_t n, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* b, fortran_int_t ldb, float vl, float vu,
- fortran_int_t il, fortran_int_t iu, float abstol, fortran_int_t& m,
- float* w, std::complex<float>* z, fortran_int_t ldz,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t hegvx( const fortran_int_t itype, const char jobz,
+ const char range, UpLo, const fortran_int_t n, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb, const float vl, const float vu,
+ const fortran_int_t il, const fortran_int_t iu, const float abstol,
+ fortran_int_t& m, float* w, std::complex<float>* z,
+ const fortran_int_t ldz, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_CHEGVX( &itype, &jobz, &range, &lapack_option< UpLo >::value, &n,
             a, &lda, b, &ldb, &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz,
@@ -72,12 +74,14 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hegvx( fortran_int_t itype, char jobz, char range, UpLo,
- fortran_int_t n, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* b, fortran_int_t ldb, double vl, double vu,
- fortran_int_t il, fortran_int_t iu, double abstol, fortran_int_t& m,
- double* w, std::complex<double>* z, fortran_int_t ldz,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
+inline std::ptrdiff_t hegvx( const fortran_int_t itype, const char jobz,
+ const char range, UpLo, const fortran_int_t n,
+ std::complex<double>* a, const fortran_int_t lda,
+ std::complex<double>* b, const fortran_int_t ldb, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w,
+ std::complex<double>* z, const fortran_int_t ldz,
+ std::complex<double>* work, const fortran_int_t lwork, double* rwork,
         fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_ZHEGVX( &itype, &jobz, &range, &lapack_option< UpLo >::value, &n,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hesv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<float>* a, fortran_int_t lda, fortran_int_t* ipiv,
- std::complex<float>* b, fortran_int_t ldb, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t hesv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, fortran_int_t* ipiv, std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CHESV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, ipiv, b,
             &ldb, work, &lwork, &info );
@@ -68,10 +69,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hesv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* a, fortran_int_t lda, fortran_int_t* ipiv,
- std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t hesv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, fortran_int_t* ipiv, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZHESV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, ipiv, b,
             &ldb, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hesvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,13 +52,14 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hesvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* af, fortran_int_t ldaf, fortran_int_t* ipiv,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float& rcond, float* ferr,
- float* berr, std::complex<float>* work, fortran_int_t lwork,
- float* rwork ) {
+inline std::ptrdiff_t hesvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* af,
+ const fortran_int_t ldaf, fortran_int_t* ipiv,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHESVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work,
@@ -72,13 +73,14 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hesvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* af, fortran_int_t ldaf, fortran_int_t* ipiv,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double& rcond,
+inline std::ptrdiff_t hesvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* af,
+ const fortran_int_t ldaf, fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
         double* ferr, double* berr, std::complex<double>* work,
- fortran_int_t lwork, double* rwork ) {
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHESVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpev( char jobz, UpLo, fortran_int_t n,
+inline std::ptrdiff_t hpev( const char jobz, UpLo, const fortran_int_t n,
         std::complex<float>* ap, float* w, std::complex<float>* z,
- fortran_int_t ldz, std::complex<float>* work, float* rwork ) {
+ const fortran_int_t ldz, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHPEV( &jobz, &lapack_option< UpLo >::value, &n, ap, w, z, &ldz,
             work, rwork, &info );
@@ -66,9 +66,9 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpev( char jobz, UpLo, fortran_int_t n,
+inline std::ptrdiff_t hpev( const char jobz, UpLo, const fortran_int_t n,
         std::complex<double>* ap, double* w, std::complex<double>* z,
- fortran_int_t ldz, std::complex<double>* work, double* rwork ) {
+ const fortran_int_t ldz, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHPEV( &jobz, &lapack_option< UpLo >::value, &n, ap, w, z, &ldz,
             work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,11 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpevd( char jobz, UpLo, fortran_int_t n,
+inline std::ptrdiff_t hpevd( const char jobz, UpLo, const fortran_int_t n,
         std::complex<float>* ap, float* w, std::complex<float>* z,
- fortran_int_t ldz, std::complex<float>* work, fortran_int_t lwork,
- float* rwork, fortran_int_t lrwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+ const fortran_int_t ldz, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CHPEVD( &jobz, &lapack_option< UpLo >::value, &n, ap, w, z, &ldz,
             work, &lwork, rwork, &lrwork, iwork, &liwork, &info );
@@ -69,11 +69,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpevd( char jobz, UpLo, fortran_int_t n,
+inline std::ptrdiff_t hpevd( const char jobz, UpLo, const fortran_int_t n,
         std::complex<double>* ap, double* w, std::complex<double>* z,
- fortran_int_t ldz, std::complex<double>* work, fortran_int_t lwork,
- double* rwork, fortran_int_t lrwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+ const fortran_int_t ldz, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZHPEVD( &jobz, &lapack_option< UpLo >::value, &n, ap, w, z, &ldz,
             work, &lwork, rwork, &lrwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,11 +51,13 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpevx( char jobz, char range, UpLo, fortran_int_t n,
- std::complex<float>* ap, float vl, float vu, fortran_int_t il,
- fortran_int_t iu, float abstol, fortran_int_t& m, float* w,
- std::complex<float>* z, fortran_int_t ldz, std::complex<float>* work,
- float* rwork, fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t hpevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, std::complex<float>* ap, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ const float abstol, fortran_int_t& m, float* w,
+ std::complex<float>* z, const fortran_int_t ldz,
+ std::complex<float>* work, float* rwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_CHPEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, ap, &vl,
             &vu, &il, &iu, &abstol, &m, w, z, &ldz, work, rwork, iwork, ifail,
@@ -69,10 +71,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpevx( char jobz, char range, UpLo, fortran_int_t n,
- std::complex<double>* ap, double vl, double vu, fortran_int_t il,
- fortran_int_t iu, double abstol, fortran_int_t& m, double* w,
- std::complex<double>* z, fortran_int_t ldz,
+inline std::ptrdiff_t hpevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, std::complex<double>* ap, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w,
+ std::complex<double>* z, const fortran_int_t ldz,
         std::complex<double>* work, double* rwork, fortran_int_t* iwork,
         fortran_int_t* ifail ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,10 +51,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpgv( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, std::complex<float>* ap, std::complex<float>* bp,
- float* w, std::complex<float>* z, fortran_int_t ldz,
- std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t hpgv( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, std::complex<float>* ap,
+ std::complex<float>* bp, float* w, std::complex<float>* z,
+ const fortran_int_t ldz, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHPGV( &itype, &jobz, &lapack_option< UpLo >::value, &n, ap, bp, w,
             z, &ldz, work, rwork, &info );
@@ -67,10 +67,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpgv( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, std::complex<double>* ap, std::complex<double>* bp,
- double* w, std::complex<double>* z, fortran_int_t ldz,
- std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t hpgv( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, std::complex<double>* ap,
+ std::complex<double>* bp, double* w, std::complex<double>* z,
+ const fortran_int_t ldz, std::complex<double>* work, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZHPGV( &itype, &jobz, &lapack_option< UpLo >::value, &n, ap, bp, w,
             z, &ldz, work, rwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpgvd( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, std::complex<float>* ap, std::complex<float>* bp,
- float* w, std::complex<float>* z, fortran_int_t ldz,
- std::complex<float>* work, fortran_int_t lwork, float* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t hpgvd( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, std::complex<float>* ap,
+ std::complex<float>* bp, float* w, std::complex<float>* z,
+ const fortran_int_t ldz, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_CHPGVD( &itype, &jobz, &lapack_option< UpLo >::value, &n, ap, bp,
             w, z, &ldz, work, &lwork, rwork, &lrwork, iwork, &liwork, &info );
@@ -69,11 +70,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpgvd( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, std::complex<double>* ap, std::complex<double>* bp,
- double* w, std::complex<double>* z, fortran_int_t ldz,
- std::complex<double>* work, fortran_int_t lwork, double* rwork,
- fortran_int_t lrwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t hpgvd( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, std::complex<double>* ap,
+ std::complex<double>* bp, double* w, std::complex<double>* z,
+ const fortran_int_t ldz, std::complex<double>* work,
+ const fortran_int_t lwork, double* rwork, const fortran_int_t lrwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_ZHPGVD( &itype, &jobz, &lapack_option< UpLo >::value, &n, ap, bp,
             w, z, &ldz, work, &lwork, rwork, &lrwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpgvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,10 +51,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpgvx( fortran_int_t itype, char jobz, char range, UpLo,
- fortran_int_t n, std::complex<float>* ap, std::complex<float>* bp,
- float vl, float vu, fortran_int_t il, fortran_int_t iu, float abstol,
- fortran_int_t& m, float* w, std::complex<float>* z, fortran_int_t ldz,
+inline std::ptrdiff_t hpgvx( const fortran_int_t itype, const char jobz,
+ const char range, UpLo, const fortran_int_t n,
+ std::complex<float>* ap, std::complex<float>* bp, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ const float abstol, fortran_int_t& m, float* w,
+ std::complex<float>* z, const fortran_int_t ldz,
         std::complex<float>* work, float* rwork, fortran_int_t* iwork,
         fortran_int_t* ifail ) {
     fortran_int_t info(0);
@@ -70,12 +72,14 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpgvx( fortran_int_t itype, char jobz, char range, UpLo,
- fortran_int_t n, std::complex<double>* ap, std::complex<double>* bp,
- double vl, double vu, fortran_int_t il, fortran_int_t iu,
- double abstol, fortran_int_t& m, double* w, std::complex<double>* z,
- fortran_int_t ldz, std::complex<double>* work, double* rwork,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t hpgvx( const fortran_int_t itype, const char jobz,
+ const char range, UpLo, const fortran_int_t n,
+ std::complex<double>* ap, std::complex<double>* bp, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w,
+ std::complex<double>* z, const fortran_int_t ldz,
+ std::complex<double>* work, double* rwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_ZHPGVX( &itype, &jobz, &range, &lapack_option< UpLo >::value, &n,
             ap, bp, &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, work, rwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,9 +49,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<float>* ap, fortran_int_t* ipiv, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t hpsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* ap,
+ fortran_int_t* ipiv, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CHPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, ipiv, b, &ldb,
             &info );
@@ -64,9 +65,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* ap, fortran_int_t* ipiv,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t hpsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* ap,
+ fortran_int_t* ipiv, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZHPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, ipiv, b, &ldb,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/hpsvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,12 +51,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* ap,
+inline std::ptrdiff_t hpsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* ap,
         std::complex<float>* afp, fortran_int_t* ipiv,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float& rcond, float* ferr,
- float* berr, std::complex<float>* work, float* rwork ) {
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CHPSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, ap, afp,
             ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work, rwork, &info );
@@ -69,11 +69,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t hpsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* ap,
+inline std::ptrdiff_t hpsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* ap,
         std::complex<double>* afp, fortran_int_t* ipiv,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double& rcond,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
         double* ferr, double* berr, std::complex<double>* work,
         double* rwork ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lacgv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lacgv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lacgv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -47,8 +47,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t lacgv( fortran_int_t n, std::complex<float>* x,
- fortran_int_t incx ) {
+inline std::ptrdiff_t lacgv( const fortran_int_t n, std::complex<float>* x,
+ const fortran_int_t incx ) {
     fortran_int_t info(0);
     LAPACK_CLACGV( &n, x, &incx );
     return info;
@@ -59,8 +59,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t lacgv( fortran_int_t n, std::complex<double>* x,
- fortran_int_t incx ) {
+inline std::ptrdiff_t lacgv( const fortran_int_t n, std::complex<double>* x,
+ const fortran_int_t incx ) {
     fortran_int_t info(0);
     LAPACK_ZLACGV( &n, x, &incx );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lalsd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lalsd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/lalsd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -53,9 +53,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t lalsd( char uplo, fortran_int_t smlsiz, fortran_int_t n,
- fortran_int_t nrhs, float* d, float* e, float* b, fortran_int_t ldb,
- float rcond, fortran_int_t& rank, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t lalsd( const char uplo, const fortran_int_t smlsiz,
+ const fortran_int_t n, const fortran_int_t nrhs, float* d, float* e,
+ float* b, const fortran_int_t ldb, const float rcond,
+ fortran_int_t& rank, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SLALSD( &uplo, &smlsiz, &n, &nrhs, d, e, b, &ldb, &rcond, &rank,
             work, iwork, &info );
@@ -67,10 +68,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t lalsd( char uplo, fortran_int_t smlsiz, fortran_int_t n,
- fortran_int_t nrhs, double* d, double* e, double* b,
- fortran_int_t ldb, double rcond, fortran_int_t& rank, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t lalsd( const char uplo, const fortran_int_t smlsiz,
+ const fortran_int_t n, const fortran_int_t nrhs, double* d, double* e,
+ double* b, const fortran_int_t ldb, const double rcond,
+ fortran_int_t& rank, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DLALSD( &uplo, &smlsiz, &n, &nrhs, d, e, b, &ldb, &rcond, &rank,
             work, iwork, &info );
@@ -82,10 +83,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t lalsd( char uplo, fortran_int_t smlsiz, fortran_int_t n,
- fortran_int_t nrhs, float* d, float* e, std::complex<float>* b,
- fortran_int_t ldb, float rcond, fortran_int_t& rank,
- std::complex<float>* work, float* rwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t lalsd( const char uplo, const fortran_int_t smlsiz,
+ const fortran_int_t n, const fortran_int_t nrhs, float* d, float* e,
+ std::complex<float>* b, const fortran_int_t ldb, const float rcond,
+ fortran_int_t& rank, std::complex<float>* work, float* rwork,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_CLALSD( &uplo, &smlsiz, &n, &nrhs, d, e, b, &ldb, &rcond, &rank,
             work, rwork, iwork, &info );
@@ -97,10 +99,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t lalsd( char uplo, fortran_int_t smlsiz, fortran_int_t n,
- fortran_int_t nrhs, double* d, double* e, std::complex<double>* b,
- fortran_int_t ldb, double rcond, fortran_int_t& rank,
- std::complex<double>* work, double* rwork, fortran_int_t* iwork ) {
+inline std::ptrdiff_t lalsd( const char uplo, const fortran_int_t smlsiz,
+ const fortran_int_t n, const fortran_int_t nrhs, double* d, double* e,
+ std::complex<double>* b, const fortran_int_t ldb, const double rcond,
+ fortran_int_t& rank, std::complex<double>* work, double* rwork,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_ZLALSD( &uplo, &smlsiz, &n, &nrhs, d, e, b, &ldb, &rcond, &rank,
             work, rwork, iwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/largv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/largv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/largv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,8 +50,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t largv( fortran_int_t n, float* x, fortran_int_t incx,
- float* y, fortran_int_t incy, float* c, fortran_int_t incc ) {
+inline std::ptrdiff_t largv( const fortran_int_t n, float* x,
+ const fortran_int_t incx, float* y, const fortran_int_t incy,
+ float* c, const fortran_int_t incc ) {
     fortran_int_t info(0);
     LAPACK_SLARGV( &n, x, &incx, y, &incy, c, &incc );
     return info;
@@ -62,8 +63,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t largv( fortran_int_t n, double* x, fortran_int_t incx,
- double* y, fortran_int_t incy, double* c, fortran_int_t incc ) {
+inline std::ptrdiff_t largv( const fortran_int_t n, double* x,
+ const fortran_int_t incx, double* y, const fortran_int_t incy,
+ double* c, const fortran_int_t incc ) {
     fortran_int_t info(0);
     LAPACK_DLARGV( &n, x, &incx, y, &incy, c, &incc );
     return info;
@@ -74,9 +76,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t largv( fortran_int_t n, std::complex<float>* x,
- fortran_int_t incx, std::complex<float>* y, fortran_int_t incy,
- float* c, fortran_int_t incc ) {
+inline std::ptrdiff_t largv( const fortran_int_t n, std::complex<float>* x,
+ const fortran_int_t incx, std::complex<float>* y,
+ const fortran_int_t incy, float* c, const fortran_int_t incc ) {
     fortran_int_t info(0);
     LAPACK_CLARGV( &n, x, &incx, y, &incy, c, &incc );
     return info;
@@ -87,9 +89,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t largv( fortran_int_t n, std::complex<double>* x,
- fortran_int_t incx, std::complex<double>* y, fortran_int_t incy,
- double* c, fortran_int_t incc ) {
+inline std::ptrdiff_t largv( const fortran_int_t n, std::complex<double>* x,
+ const fortran_int_t incx, std::complex<double>* y,
+ const fortran_int_t incy, double* c, const fortran_int_t incc ) {
     fortran_int_t info(0);
     LAPACK_ZLARGV( &n, x, &incx, y, &incy, c, &incc );
     return info;
@@ -121,9 +123,7 @@
     //
     template< typename VectorX, typename VectorY, typename VectorC >
     static std::ptrdiff_t invoke( const fortran_int_t n, VectorX& x,
- const fortran_int_t incx, VectorY& y,
- const fortran_int_t incy, VectorC& c,
- const fortran_int_t incc ) {
+ VectorY& y, VectorC& c ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorX >::type >::type,
                 typename remove_const< typename value<
@@ -135,11 +135,11 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorY >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorC >::value) );
- BOOST_ASSERT( size(c) >= 1+(n-1)*incc );
- BOOST_ASSERT( size(x) >= 1+(n-1)*incx );
- BOOST_ASSERT( size(y) >= 1+(n-1)*incy );
- return detail::largv( n, begin_value(x), incx, begin_value(y), incy,
- begin_value(c), incc );
+ BOOST_ASSERT( size(c) >= 1+(n-1)*stride(c) );
+ BOOST_ASSERT( size(x) >= 1+(n-1)*stride(x) );
+ BOOST_ASSERT( size(y) >= 1+(n-1)*stride(y) );
+ return detail::largv( n, begin_value(x), stride(x), begin_value(y),
+ stride(y), begin_value(c), stride(c) );
     }
 
 };
@@ -161,9 +161,7 @@
     //
     template< typename VectorX, typename VectorY, typename VectorC >
     static std::ptrdiff_t invoke( const fortran_int_t n, VectorX& x,
- const fortran_int_t incx, VectorY& y,
- const fortran_int_t incy, VectorC& c,
- const fortran_int_t incc ) {
+ VectorY& y, VectorC& c ) {
         BOOST_STATIC_ASSERT( (boost::is_same< typename remove_const<
                 typename value< VectorX >::type >::type,
                 typename remove_const< typename value<
@@ -171,11 +169,11 @@
         BOOST_STATIC_ASSERT( (is_mutable< VectorX >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorY >::value) );
         BOOST_STATIC_ASSERT( (is_mutable< VectorC >::value) );
- BOOST_ASSERT( size(c) >= 1+(n-1)*incc );
- BOOST_ASSERT( size(x) >= 1+(n-1)*incx );
- BOOST_ASSERT( size(y) >= 1+(n-1)*incy );
- return detail::largv( n, begin_value(x), incx, begin_value(y), incy,
- begin_value(c), incc );
+ BOOST_ASSERT( size(c) >= 1+(n-1)*stride(c) );
+ BOOST_ASSERT( size(x) >= 1+(n-1)*stride(x) );
+ BOOST_ASSERT( size(y) >= 1+(n-1)*stride(y) );
+ return detail::largv( n, begin_value(x), stride(x), begin_value(y),
+ stride(y), begin_value(c), stride(c) );
     }
 
 };
@@ -198,11 +196,9 @@
 //
 template< typename VectorX, typename VectorY, typename VectorC >
 inline std::ptrdiff_t largv( const fortran_int_t n, VectorX& x,
- const fortran_int_t incx, VectorY& y,
- const fortran_int_t incy, VectorC& c,
- const fortran_int_t incc ) {
+ VectorY& y, VectorC& c ) {
     return largv_impl< typename value< VectorX >::type >::invoke( n, x,
- incx, y, incy, c, incc );
+ y, c );
 }
 
 //
@@ -213,11 +209,9 @@
 //
 template< typename VectorX, typename VectorY, typename VectorC >
 inline std::ptrdiff_t largv( const fortran_int_t n, const VectorX& x,
- const fortran_int_t incx, VectorY& y,
- const fortran_int_t incy, VectorC& c,
- const fortran_int_t incc ) {
+ VectorY& y, VectorC& c ) {
     return largv_impl< typename value< VectorX >::type >::invoke( n, x,
- incx, y, incy, c, incc );
+ y, c );
 }
 
 //
@@ -228,11 +222,9 @@
 //
 template< typename VectorX, typename VectorY, typename VectorC >
 inline std::ptrdiff_t largv( const fortran_int_t n, VectorX& x,
- const fortran_int_t incx, const VectorY& y,
- const fortran_int_t incy, VectorC& c,
- const fortran_int_t incc ) {
+ const VectorY& y, VectorC& c ) {
     return largv_impl< typename value< VectorX >::type >::invoke( n, x,
- incx, y, incy, c, incc );
+ y, c );
 }
 
 //
@@ -243,11 +235,9 @@
 //
 template< typename VectorX, typename VectorY, typename VectorC >
 inline std::ptrdiff_t largv( const fortran_int_t n, const VectorX& x,
- const fortran_int_t incx, const VectorY& y,
- const fortran_int_t incy, VectorC& c,
- const fortran_int_t incc ) {
+ const VectorY& y, VectorC& c ) {
     return largv_impl< typename value< VectorX >::type >::invoke( n, x,
- incx, y, incy, c, incc );
+ y, c );
 }
 
 //
@@ -258,11 +248,9 @@
 //
 template< typename VectorX, typename VectorY, typename VectorC >
 inline std::ptrdiff_t largv( const fortran_int_t n, VectorX& x,
- const fortran_int_t incx, VectorY& y,
- const fortran_int_t incy, const VectorC& c,
- const fortran_int_t incc ) {
+ VectorY& y, const VectorC& c ) {
     return largv_impl< typename value< VectorX >::type >::invoke( n, x,
- incx, y, incy, c, incc );
+ y, c );
 }
 
 //
@@ -273,11 +261,9 @@
 //
 template< typename VectorX, typename VectorY, typename VectorC >
 inline std::ptrdiff_t largv( const fortran_int_t n, const VectorX& x,
- const fortran_int_t incx, VectorY& y,
- const fortran_int_t incy, const VectorC& c,
- const fortran_int_t incc ) {
+ VectorY& y, const VectorC& c ) {
     return largv_impl< typename value< VectorX >::type >::invoke( n, x,
- incx, y, incy, c, incc );
+ y, c );
 }
 
 //
@@ -288,11 +274,9 @@
 //
 template< typename VectorX, typename VectorY, typename VectorC >
 inline std::ptrdiff_t largv( const fortran_int_t n, VectorX& x,
- const fortran_int_t incx, const VectorY& y,
- const fortran_int_t incy, const VectorC& c,
- const fortran_int_t incc ) {
+ const VectorY& y, const VectorC& c ) {
     return largv_impl< typename value< VectorX >::type >::invoke( n, x,
- incx, y, incy, c, incc );
+ y, c );
 }
 
 //
@@ -303,11 +287,9 @@
 //
 template< typename VectorX, typename VectorY, typename VectorC >
 inline std::ptrdiff_t largv( const fortran_int_t n, const VectorX& x,
- const fortran_int_t incx, const VectorY& y,
- const fortran_int_t incy, const VectorC& c,
- const fortran_int_t incc ) {
+ const VectorY& y, const VectorC& c ) {
     return largv_impl< typename value< VectorX >::type >::invoke( n, x,
- incx, y, incy, c, incc );
+ y, c );
 }
 
 } // namespace lapack

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,9 +49,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbsv( UpLo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, float* ab, fortran_int_t ldab, float* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pbsv( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs, float* ab,
+ const fortran_int_t ldab, float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SPBSV( &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab, &ldab, b,
             &ldb, &info );
@@ -64,9 +64,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbsv( UpLo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, double* ab, fortran_int_t ldab, double* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t pbsv( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs, double* ab,
+ const fortran_int_t ldab, double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DPBSV( &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab, &ldab, b,
             &ldb, &info );
@@ -79,9 +79,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbsv( UpLo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, std::complex<float>* ab, fortran_int_t ldab,
- std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pbsv( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CPBSV( &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab, &ldab, b,
             &ldb, &info );
@@ -94,9 +95,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbsv( UpLo, fortran_int_t n, fortran_int_t kd,
- fortran_int_t nrhs, std::complex<double>* ab, fortran_int_t ldab,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t pbsv( UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZPBSV( &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab, &ldab, b,
             &ldb, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/pbsvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,11 +54,12 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, float* ab, fortran_int_t ldab,
- float* afb, fortran_int_t ldafb, char& equed, float* s, float* b,
- fortran_int_t ldb, float* x, fortran_int_t ldx, float& rcond,
- float* ferr, float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t pbsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs, float* ab,
+ const fortran_int_t ldab, float* afb, const fortran_int_t ldafb,
+ char& equed, float* s, float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float& rcond, float* ferr, float* berr,
+ float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SPBSVX( &fact, &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab,
             &ldab, afb, &ldafb, &equed, s, b, &ldb, x, &ldx, &rcond, ferr,
@@ -72,11 +73,12 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, double* ab, fortran_int_t ldab,
- double* afb, fortran_int_t ldafb, char& equed, double* s, double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double& rcond,
- double* ferr, double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t pbsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs, double* ab,
+ const fortran_int_t ldab, double* afb, const fortran_int_t ldafb,
+ char& equed, double* s, double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double& rcond, double* ferr, double* berr,
+ double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DPBSVX( &fact, &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab,
             &ldab, afb, &ldafb, &equed, s, b, &ldb, x, &ldx, &rcond, ferr,
@@ -90,12 +92,13 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, std::complex<float>* ab,
- fortran_int_t ldab, std::complex<float>* afb, fortran_int_t ldafb,
- char& equed, float* s, std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float& rcond, float* ferr,
- float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t pbsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs,
+ std::complex<float>* ab, const fortran_int_t ldab,
+ std::complex<float>* afb, const fortran_int_t ldafb, char& equed,
+ float* s, std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPBSVX( &fact, &lapack_option< UpLo >::value, &n, &kd, &nrhs, ab,
             &ldab, afb, &ldafb, &equed, s, b, &ldb, x, &ldx, &rcond, ferr,
@@ -109,11 +112,12 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t pbsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t kd, fortran_int_t nrhs, std::complex<double>* ab,
- fortran_int_t ldab, std::complex<double>* afb, fortran_int_t ldafb,
- char& equed, double* s, std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double& rcond,
+inline std::ptrdiff_t pbsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, const fortran_int_t nrhs,
+ std::complex<double>* ab, const fortran_int_t ldab,
+ std::complex<double>* afb, const fortran_int_t ldafb, char& equed,
+ double* s, std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
         double* ferr, double* berr, std::complex<double>* work,
         double* rwork ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -58,8 +58,8 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t posv( Order, UpLo, int n, int nrhs, float* a, int lda,
- float* b, int ldb ) {
+inline std::ptrdiff_t posv( Order, UpLo, const int n, const int nrhs, float* a,
+ const int lda, float* b, const int ldb ) {
     return clapack_sposv( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, nrhs, a, lda, b, ldb );
 }
@@ -70,8 +70,8 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t posv( Order, UpLo, int n, int nrhs, double* a, int lda,
- double* b, int ldb ) {
+inline std::ptrdiff_t posv( Order, UpLo, const int n, const int nrhs,
+ double* a, const int lda, double* b, const int ldb ) {
     return clapack_dposv( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, nrhs, a, lda, b, ldb );
 }
@@ -82,8 +82,9 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t posv( Order, UpLo, int n, int nrhs,
- std::complex<float>* a, int lda, std::complex<float>* b, int ldb ) {
+inline std::ptrdiff_t posv( Order, UpLo, const int n, const int nrhs,
+ std::complex<float>* a, const int lda, std::complex<float>* b,
+ const int ldb ) {
     return clapack_cposv( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, nrhs, a, lda, b, ldb );
 }
@@ -94,8 +95,9 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t posv( Order, UpLo, int n, int nrhs,
- std::complex<double>* a, int lda, std::complex<double>* b, int ldb ) {
+inline std::ptrdiff_t posv( Order, UpLo, const int n, const int nrhs,
+ std::complex<double>* a, const int lda, std::complex<double>* b,
+ const int ldb ) {
     return clapack_zposv( clapack_option< Order >::value, clapack_option<
             UpLo >::value, n, nrhs, a, lda, b, ldb );
 }
@@ -107,8 +109,9 @@
 // * float value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t posv( Order, UpLo, fortran_int_t n, fortran_int_t nrhs,
- float* a, fortran_int_t lda, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t posv( Order, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_SPOSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,
@@ -122,8 +125,9 @@
 // * double value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t posv( Order, UpLo, fortran_int_t n, fortran_int_t nrhs,
- double* a, fortran_int_t lda, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t posv( Order, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ double* b, const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_DPOSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,
@@ -137,9 +141,10 @@
 // * complex<float> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t posv( Order, UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<float>* a, fortran_int_t lda, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t posv( Order, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_CPOSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,
@@ -153,9 +158,10 @@
 // * complex<double> value-type.
 //
 template< typename Order, typename UpLo >
-inline std::ptrdiff_t posv( Order, UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* a, fortran_int_t lda, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t posv( Order, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     BOOST_STATIC_ASSERT( (is_same<Order, tag::column_major>::value) );
     fortran_int_t info(0);
     LAPACK_ZPOSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/posvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,11 +54,12 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t posvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, float* a, fortran_int_t lda, float* af,
- fortran_int_t ldaf, char& equed, float* s, float* b,
- fortran_int_t ldb, float* x, fortran_int_t ldx, float& rcond,
- float* ferr, float* berr, float* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t posvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, float* a, const fortran_int_t lda,
+ float* af, const fortran_int_t ldaf, char& equed, float* s, float* b,
+ const fortran_int_t ldb, float* x, const fortran_int_t ldx,
+ float& rcond, float* ferr, float* berr, float* work,
+ fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SPOSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, &equed, s, b, &ldb, x, &ldx, &rcond, ferr, berr, work,
@@ -72,11 +73,12 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t posvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, double* a, fortran_int_t lda, double* af,
- fortran_int_t ldaf, char& equed, double* s, double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double& rcond,
- double* ferr, double* berr, double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t posvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ double* af, const fortran_int_t ldaf, char& equed, double* s,
+ double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double& rcond, double* ferr, double* berr,
+ double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DPOSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, &equed, s, b, &ldb, x, &ldx, &rcond, ferr, berr, work,
@@ -90,12 +92,13 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t posvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* af, fortran_int_t ldaf, char& equed, float* s,
- std::complex<float>* b, fortran_int_t ldb, std::complex<float>* x,
- fortran_int_t ldx, float& rcond, float* ferr, float* berr,
- std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t posvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* af,
+ const fortran_int_t ldaf, char& equed, float* s,
+ std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPOSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, &equed, s, b, &ldb, x, &ldx, &rcond, ferr, berr, work,
@@ -109,12 +112,14 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t posvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* af, fortran_int_t ldaf, char& equed, double* s,
- std::complex<double>* b, fortran_int_t ldb, std::complex<double>* x,
- fortran_int_t ldx, double& rcond, double* ferr, double* berr,
- std::complex<double>* work, double* rwork ) {
+inline std::ptrdiff_t posvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* af,
+ const fortran_int_t ldaf, char& equed, double* s,
+ std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
+ double* ferr, double* berr, std::complex<double>* work,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPOSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, &equed, s, b, &ldb, x, &ldx, &rcond, ferr, berr, work,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ppsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- float* ap, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t ppsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, float* ap, float* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SPPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, b, &ldb,
             &info );
@@ -63,8 +64,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ppsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- double* ap, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t ppsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, double* ap, double* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DPPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, b, &ldb,
             &info );
@@ -77,8 +79,9 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ppsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<float>* ap, std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t ppsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* ap,
+ std::complex<float>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CPPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, b, &ldb,
             &info );
@@ -91,9 +94,9 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ppsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* ap, std::complex<double>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t ppsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* ap,
+ std::complex<double>* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZPPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, b, &ldb,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ppsvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,11 +54,11 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ppsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, float* ap, float* afp, char& equed, float* s,
- float* b, fortran_int_t ldb, float* x, fortran_int_t ldx,
- float& rcond, float* ferr, float* berr, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t ppsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, float* ap, float* afp, char& equed,
+ float* s, float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float& rcond, float* ferr, float* berr,
+ float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SPPSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, ap, afp,
             &equed, s, b, &ldb, x, &ldx, &rcond, ferr, berr, work, iwork,
@@ -72,11 +72,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ppsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, double* ap, double* afp, char& equed, double* s,
- double* b, fortran_int_t ldb, double* x, fortran_int_t ldx,
- double& rcond, double* ferr, double* berr, double* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t ppsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, double* ap, double* afp, char& equed,
+ double* s, double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double& rcond, double* ferr, double* berr,
+ double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DPPSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, ap, afp,
             &equed, s, b, &ldb, x, &ldx, &rcond, ferr, berr, work, iwork,
@@ -90,11 +90,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ppsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, std::complex<float>* ap, std::complex<float>* afp,
- char& equed, float* s, std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float& rcond, float* ferr,
- float* berr, std::complex<float>* work, float* rwork ) {
+inline std::ptrdiff_t ppsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* ap,
+ std::complex<float>* afp, char& equed, float* s,
+ std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPPSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, ap, afp,
             &equed, s, b, &ldb, x, &ldx, &rcond, ferr, berr, work, rwork,
@@ -108,12 +109,13 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t ppsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, std::complex<double>* ap,
+inline std::ptrdiff_t ppsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* ap,
         std::complex<double>* afp, char& equed, double* s,
- std::complex<double>* b, fortran_int_t ldb, std::complex<double>* x,
- fortran_int_t ldx, double& rcond, double* ferr, double* berr,
- std::complex<double>* work, double* rwork ) {
+ std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
+ double* ferr, double* berr, std::complex<double>* work,
+ double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPPSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, ap, afp,
             &equed, s, b, &ldb, x, &ldx, &rcond, ferr, berr, work, rwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,8 +50,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ptsv( fortran_int_t n, fortran_int_t nrhs, float* d,
- float* e, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t ptsv( const fortran_int_t n, const fortran_int_t nrhs,
+ float* d, float* e, float* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SPTSV( &n, &nrhs, d, e, b, &ldb, &info );
     return info;
@@ -62,8 +62,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ptsv( fortran_int_t n, fortran_int_t nrhs, double* d,
- double* e, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t ptsv( const fortran_int_t n, const fortran_int_t nrhs,
+ double* d, double* e, double* b, const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DPTSV( &n, &nrhs, d, e, b, &ldb, &info );
     return info;
@@ -74,8 +74,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ptsv( fortran_int_t n, fortran_int_t nrhs, float* d,
- std::complex<float>* e, std::complex<float>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t ptsv( const fortran_int_t n, const fortran_int_t nrhs,
+ float* d, std::complex<float>* e, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CPTSV( &n, &nrhs, d, e, b, &ldb, &info );
     return info;
@@ -86,8 +87,9 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ptsv( fortran_int_t n, fortran_int_t nrhs, double* d,
- std::complex<double>* e, std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t ptsv( const fortran_int_t n, const fortran_int_t nrhs,
+ double* d, std::complex<double>* e, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZPTSV( &n, &nrhs, d, e, b, &ldb, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/ptsvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t ptsvx( char fact, fortran_int_t n, fortran_int_t nrhs,
- const float* d, const float* e, float* df, float* ef, const float* b,
- fortran_int_t ldb, float* x, fortran_int_t ldx, float& rcond,
- float* ferr, float* berr, float* work ) {
+inline std::ptrdiff_t ptsvx( const char fact, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* d, const float* e, float* df,
+ float* ef, const float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float& rcond, float* ferr, float* berr,
+ float* work ) {
     fortran_int_t info(0);
     LAPACK_SPTSVX( &fact, &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, &rcond,
             ferr, berr, work, &info );
@@ -67,10 +68,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t ptsvx( char fact, fortran_int_t n, fortran_int_t nrhs,
- const double* d, const double* e, double* df, double* ef,
- const double* b, fortran_int_t ldb, double* x, fortran_int_t ldx,
- double& rcond, double* ferr, double* berr, double* work ) {
+inline std::ptrdiff_t ptsvx( const char fact, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* d, const double* e,
+ double* df, double* ef, const double* b, const fortran_int_t ldb,
+ double* x, const fortran_int_t ldx, double& rcond, double* ferr,
+ double* berr, double* work ) {
     fortran_int_t info(0);
     LAPACK_DPTSVX( &fact, &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, &rcond,
             ferr, berr, work, &info );
@@ -82,12 +84,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<float> value-type.
 //
-inline std::ptrdiff_t ptsvx( char fact, fortran_int_t n, fortran_int_t nrhs,
- const float* d, const std::complex<float>* e, float* df,
- std::complex<float>* ef, const std::complex<float>* b,
- fortran_int_t ldb, std::complex<float>* x, fortran_int_t ldx,
- float& rcond, float* ferr, float* berr, std::complex<float>* work,
- float* rwork ) {
+inline std::ptrdiff_t ptsvx( const char fact, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* d,
+ const std::complex<float>* e, float* df, std::complex<float>* ef,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CPTSVX( &fact, &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, &rcond,
             ferr, berr, work, rwork, &info );
@@ -99,11 +101,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * complex<double> value-type.
 //
-inline std::ptrdiff_t ptsvx( char fact, fortran_int_t n, fortran_int_t nrhs,
- const double* d, const std::complex<double>* e, double* df,
- std::complex<double>* ef, const std::complex<double>* b,
- fortran_int_t ldb, std::complex<double>* x, fortran_int_t ldx,
- double& rcond, double* ferr, double* berr, std::complex<double>* work,
+inline std::ptrdiff_t ptsvx( const char fact, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* d,
+ const std::complex<double>* e, double* df, std::complex<double>* ef,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
+ double* ferr, double* berr, std::complex<double>* work,
         double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZPTSVX( &fact, &n, &nrhs, d, e, df, ef, b, &ldb, x, &ldx, &rcond,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbev( char jobz, UpLo, fortran_int_t n, fortran_int_t kd,
- float* ab, fortran_int_t ldab, float* w, float* z, fortran_int_t ldz,
- float* work ) {
+inline std::ptrdiff_t sbev( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, float* ab, const fortran_int_t ldab, float* w,
+ float* z, const fortran_int_t ldz, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSBEV( &jobz, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, w,
             z, &ldz, work, &info );
@@ -66,9 +66,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbev( char jobz, UpLo, fortran_int_t n, fortran_int_t kd,
- double* ab, fortran_int_t ldab, double* w, double* z,
- fortran_int_t ldz, double* work ) {
+inline std::ptrdiff_t sbev( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, double* ab, const fortran_int_t ldab,
+ double* w, double* z, const fortran_int_t ldz, double* work ) {
     fortran_int_t info(0);
     LAPACK_DSBEV( &jobz, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab, w,
             z, &ldz, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbevd( char jobz, UpLo, fortran_int_t n,
- fortran_int_t kd, float* ab, fortran_int_t ldab, float* w, float* z,
- fortran_int_t ldz, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, float* ab, const fortran_int_t ldab, float* w,
+ float* z, const fortran_int_t ldz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSBEVD( &jobz, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab,
             w, z, &ldz, work, &lwork, iwork, &liwork, &info );
@@ -68,10 +69,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbevd( char jobz, UpLo, fortran_int_t n,
- fortran_int_t kd, double* ab, fortran_int_t ldab, double* w,
- double* z, fortran_int_t ldz, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t sbevd( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t kd, double* ab, const fortran_int_t ldab,
+ double* w, double* z, const fortran_int_t ldz, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSBEVD( &jobz, &lapack_option< UpLo >::value, &n, &kd, ab, &ldab,
             w, z, &ldz, work, &lwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,12 +51,13 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbevx( char jobz, char range, UpLo, fortran_int_t n,
- fortran_int_t kd, float* ab, fortran_int_t ldab, float* q,
- fortran_int_t ldq, float vl, float vu, fortran_int_t il,
- fortran_int_t iu, float abstol, fortran_int_t& m, float* w, float* z,
- fortran_int_t ldz, float* work, fortran_int_t* iwork,
- fortran_int_t* ifail ) {
+inline std::ptrdiff_t sbevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, const fortran_int_t kd, float* ab,
+ const fortran_int_t ldab, float* q, const fortran_int_t ldq,
+ const float vl, const float vu, const fortran_int_t il,
+ const fortran_int_t iu, const float abstol, fortran_int_t& m,
+ float* w, float* z, const fortran_int_t ldz, float* work,
+ fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_SSBEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, &kd, ab,
             &ldab, q, &ldq, &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, work,
@@ -70,12 +71,13 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbevx( char jobz, char range, UpLo, fortran_int_t n,
- fortran_int_t kd, double* ab, fortran_int_t ldab, double* q,
- fortran_int_t ldq, double vl, double vu, fortran_int_t il,
- fortran_int_t iu, double abstol, fortran_int_t& m, double* w,
- double* z, fortran_int_t ldz, double* work, fortran_int_t* iwork,
- fortran_int_t* ifail ) {
+inline std::ptrdiff_t sbevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, const fortran_int_t kd, double* ab,
+ const fortran_int_t ldab, double* q, const fortran_int_t ldq,
+ const double vl, const double vu, const fortran_int_t il,
+ const fortran_int_t iu, const double abstol, fortran_int_t& m,
+ double* w, double* z, const fortran_int_t ldz, double* work,
+ fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_DSBEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, &kd, ab,
             &ldab, q, &ldq, &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, work,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,10 +51,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbgv( char jobz, UpLo, fortran_int_t n, fortran_int_t ka,
- fortran_int_t kb, float* ab, fortran_int_t ldab, float* bb,
- fortran_int_t ldbb, float* w, float* z, fortran_int_t ldz,
- float* work ) {
+inline std::ptrdiff_t sbgv( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb, float* ab,
+ const fortran_int_t ldab, float* bb, const fortran_int_t ldbb,
+ float* w, float* z, const fortran_int_t ldz, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSBGV( &jobz, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, w, z, &ldz, work, &info );
@@ -67,10 +67,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbgv( char jobz, UpLo, fortran_int_t n, fortran_int_t ka,
- fortran_int_t kb, double* ab, fortran_int_t ldab, double* bb,
- fortran_int_t ldbb, double* w, double* z, fortran_int_t ldz,
- double* work ) {
+inline std::ptrdiff_t sbgv( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb, double* ab,
+ const fortran_int_t ldab, double* bb, const fortran_int_t ldbb,
+ double* w, double* z, const fortran_int_t ldz, double* work ) {
     fortran_int_t info(0);
     LAPACK_DSBGV( &jobz, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, w, z, &ldz, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,12 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbgvd( char jobz, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, float* ab, fortran_int_t ldab,
- float* bb, fortran_int_t ldbb, float* w, float* z, fortran_int_t ldz,
- float* work, fortran_int_t lwork, fortran_int_t* iwork,
- fortran_int_t liwork ) {
+inline std::ptrdiff_t sbgvd( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb, float* ab,
+ const fortran_int_t ldab, float* bb, const fortran_int_t ldbb,
+ float* w, float* z, const fortran_int_t ldz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSBGVD( &jobz, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, w, z, &ldz, work, &lwork, iwork, &liwork,
@@ -70,11 +71,12 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbgvd( char jobz, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, double* ab, fortran_int_t ldab,
- double* bb, fortran_int_t ldbb, double* w, double* z,
- fortran_int_t ldz, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t sbgvd( const char jobz, UpLo, const fortran_int_t n,
+ const fortran_int_t ka, const fortran_int_t kb, double* ab,
+ const fortran_int_t ldab, double* bb, const fortran_int_t ldbb,
+ double* w, double* z, const fortran_int_t ldz, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSBGVD( &jobz, &lapack_option< UpLo >::value, &n, &ka, &kb, ab,
             &ldab, bb, &ldbb, w, z, &ldz, work, &lwork, iwork, &liwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sbgvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,11 +51,13 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbgvx( char jobz, char range, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, float* ab, fortran_int_t ldab,
- float* bb, fortran_int_t ldbb, float* q, fortran_int_t ldq, float vl,
- float vu, fortran_int_t il, fortran_int_t iu, float abstol,
- fortran_int_t& m, float* w, float* z, fortran_int_t ldz, float* work,
+inline std::ptrdiff_t sbgvx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, const fortran_int_t ka, const fortran_int_t kb,
+ float* ab, const fortran_int_t ldab, float* bb,
+ const fortran_int_t ldbb, float* q, const fortran_int_t ldq,
+ const float vl, const float vu, const fortran_int_t il,
+ const fortran_int_t iu, const float abstol, fortran_int_t& m,
+ float* w, float* z, const fortran_int_t ldz, float* work,
         fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_SSBGVX( &jobz, &range, &lapack_option< UpLo >::value, &n, &ka, &kb,
@@ -70,13 +72,14 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sbgvx( char jobz, char range, UpLo, fortran_int_t n,
- fortran_int_t ka, fortran_int_t kb, double* ab, fortran_int_t ldab,
- double* bb, fortran_int_t ldbb, double* q, fortran_int_t ldq,
- double vl, double vu, fortran_int_t il, fortran_int_t iu,
- double abstol, fortran_int_t& m, double* w, double* z,
- fortran_int_t ldz, double* work, fortran_int_t* iwork,
- fortran_int_t* ifail ) {
+inline std::ptrdiff_t sbgvx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, const fortran_int_t ka, const fortran_int_t kb,
+ double* ab, const fortran_int_t ldab, double* bb,
+ const fortran_int_t ldbb, double* q, const fortran_int_t ldq,
+ const double vl, const double vu, const fortran_int_t il,
+ const fortran_int_t iu, const double abstol, fortran_int_t& m,
+ double* w, double* z, const fortran_int_t ldz, double* work,
+ fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_DSBGVX( &jobz, &range, &lapack_option< UpLo >::value, &n, &ka, &kb,
             ab, &ldab, bb, &ldbb, q, &ldq, &vl, &vu, &il, &iu, &abstol, &m, w,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sgesv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sgesv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sgesv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,10 +49,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t sgesv( fortran_int_t n, fortran_int_t nrhs, double* a,
- fortran_int_t lda, fortran_int_t* ipiv, const double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double* work,
- float* swork, fortran_int_t& iter ) {
+inline std::ptrdiff_t sgesv( const fortran_int_t n, const fortran_int_t nrhs,
+ double* a, const fortran_int_t lda, fortran_int_t* ipiv,
+ const double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double* work, float* swork,
+ fortran_int_t& iter ) {
     fortran_int_t info(0);
     LAPACK_DSGESV( &n, &nrhs, a, &lda, ipiv, b, &ldb, x, &ldx, work, swork,
             &iter, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,8 +51,8 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spev( char jobz, UpLo, fortran_int_t n, float* ap,
- float* w, float* z, fortran_int_t ldz, float* work ) {
+inline std::ptrdiff_t spev( const char jobz, UpLo, const fortran_int_t n,
+ float* ap, float* w, float* z, const fortran_int_t ldz, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSPEV( &jobz, &lapack_option< UpLo >::value, &n, ap, w, z, &ldz,
             work, &info );
@@ -65,8 +65,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spev( char jobz, UpLo, fortran_int_t n, double* ap,
- double* w, double* z, fortran_int_t ldz, double* work ) {
+inline std::ptrdiff_t spev( const char jobz, UpLo, const fortran_int_t n,
+ double* ap, double* w, double* z, const fortran_int_t ldz,
+ double* work ) {
     fortran_int_t info(0);
     LAPACK_DSPEV( &jobz, &lapack_option< UpLo >::value, &n, ap, w, z, &ldz,
             work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spevd( char jobz, UpLo, fortran_int_t n, float* ap,
- float* w, float* z, fortran_int_t ldz, float* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t spevd( const char jobz, UpLo, const fortran_int_t n,
+ float* ap, float* w, float* z, const fortran_int_t ldz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSPEVD( &jobz, &lapack_option< UpLo >::value, &n, ap, w, z, &ldz,
             work, &lwork, iwork, &liwork, &info );
@@ -67,9 +68,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spevd( char jobz, UpLo, fortran_int_t n, double* ap,
- double* w, double* z, fortran_int_t ldz, double* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t spevd( const char jobz, UpLo, const fortran_int_t n,
+ double* ap, double* w, double* z, const fortran_int_t ldz,
+ double* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSPEVD( &jobz, &lapack_option< UpLo >::value, &n, ap, w, z, &ldz,
             work, &lwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spevx( char jobz, char range, UpLo, fortran_int_t n,
- float* ap, float vl, float vu, fortran_int_t il, fortran_int_t iu,
- float abstol, fortran_int_t& m, float* w, float* z, fortran_int_t ldz,
+inline std::ptrdiff_t spevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, float* ap, const float vl, const float vu,
+ const fortran_int_t il, const fortran_int_t iu, const float abstol,
+ fortran_int_t& m, float* w, float* z, const fortran_int_t ldz,
         float* work, fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_SSPEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, ap, &vl,
@@ -68,11 +69,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spevx( char jobz, char range, UpLo, fortran_int_t n,
- double* ap, double vl, double vu, fortran_int_t il, fortran_int_t iu,
- double abstol, fortran_int_t& m, double* w, double* z,
- fortran_int_t ldz, double* work, fortran_int_t* iwork,
- fortran_int_t* ifail ) {
+inline std::ptrdiff_t spevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, double* ap, const double vl, const double vu,
+ const fortran_int_t il, const fortran_int_t iu, const double abstol,
+ fortran_int_t& m, double* w, double* z, const fortran_int_t ldz,
+ double* work, fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_DSPEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, ap, &vl,
             &vu, &il, &iu, &abstol, &m, w, z, &ldz, work, iwork, ifail,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spgv( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, float* ap, float* bp, float* w, float* z,
- fortran_int_t ldz, float* work ) {
+inline std::ptrdiff_t spgv( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, float* ap, float* bp, float* w, float* z,
+ const fortran_int_t ldz, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSPGV( &itype, &jobz, &lapack_option< UpLo >::value, &n, ap, bp, w,
             z, &ldz, work, &info );
@@ -66,9 +66,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spgv( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, double* ap, double* bp, double* w, double* z,
- fortran_int_t ldz, double* work ) {
+inline std::ptrdiff_t spgv( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, double* ap, double* bp, double* w, double* z,
+ const fortran_int_t ldz, double* work ) {
     fortran_int_t info(0);
     LAPACK_DSPGV( &itype, &jobz, &lapack_option< UpLo >::value, &n, ap, bp, w,
             z, &ldz, work, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spgvd( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, float* ap, float* bp, float* w, float* z,
- fortran_int_t ldz, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t spgvd( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, float* ap, float* bp, float* w, float* z,
+ const fortran_int_t ldz, float* work, const fortran_int_t lwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSPGVD( &itype, &jobz, &lapack_option< UpLo >::value, &n, ap, bp,
             w, z, &ldz, work, &lwork, iwork, &liwork, &info );
@@ -68,10 +68,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spgvd( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, double* ap, double* bp, double* w, double* z,
- fortran_int_t ldz, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t spgvd( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, double* ap, double* bp, double* w, double* z,
+ const fortran_int_t ldz, double* work, const fortran_int_t lwork,
+ fortran_int_t* iwork, const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSPGVD( &itype, &jobz, &lapack_option< UpLo >::value, &n, ap, bp,
             w, z, &ldz, work, &lwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spgvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,10 +51,11 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spgvx( fortran_int_t itype, char jobz, char range, UpLo,
- fortran_int_t n, float* ap, float* bp, float vl, float vu,
- fortran_int_t il, fortran_int_t iu, float abstol, fortran_int_t& m,
- float* w, float* z, fortran_int_t ldz, float* work,
+inline std::ptrdiff_t spgvx( const fortran_int_t itype, const char jobz,
+ const char range, UpLo, const fortran_int_t n, float* ap, float* bp,
+ const float vl, const float vu, const fortran_int_t il,
+ const fortran_int_t iu, const float abstol, fortran_int_t& m,
+ float* w, float* z, const fortran_int_t ldz, float* work,
         fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_SSPGVX( &itype, &jobz, &range, &lapack_option< UpLo >::value, &n,
@@ -69,10 +70,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spgvx( fortran_int_t itype, char jobz, char range, UpLo,
- fortran_int_t n, double* ap, double* bp, double vl, double vu,
- fortran_int_t il, fortran_int_t iu, double abstol, fortran_int_t& m,
- double* w, double* z, fortran_int_t ldz, double* work,
+inline std::ptrdiff_t spgvx( const fortran_int_t itype, const char jobz,
+ const char range, UpLo, const fortran_int_t n, double* ap, double* bp,
+ const double vl, const double vu, const fortran_int_t il,
+ const fortran_int_t iu, const double abstol, fortran_int_t& m,
+ double* w, double* z, const fortran_int_t ldz, double* work,
         fortran_int_t* iwork, fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_DSPGVX( &itype, &jobz, &range, &lapack_option< UpLo >::value, &n,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sposv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sposv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sposv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -51,9 +51,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sposv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- double* a, fortran_int_t lda, const double* b, fortran_int_t ldb,
- double* x, fortran_int_t ldx, double* work, float* swork,
+inline std::ptrdiff_t sposv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ const double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double* work, float* swork,
         fortran_int_t& iter ) {
     fortran_int_t info(0);
     LAPACK_DSPOSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, b, &ldb,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- float* ap, fortran_int_t* ipiv, float* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t spsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, float* ap, fortran_int_t* ipiv, float* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_SSPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, ipiv, b, &ldb,
             &info );
@@ -63,8 +64,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- double* ap, fortran_int_t* ipiv, double* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t spsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, double* ap, fortran_int_t* ipiv, double* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_DSPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, ipiv, b, &ldb,
             &info );
@@ -77,9 +79,10 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<float>* ap, fortran_int_t* ipiv, std::complex<float>* b,
- fortran_int_t ldb ) {
+inline std::ptrdiff_t spsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* ap,
+ fortran_int_t* ipiv, std::complex<float>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_CSPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, ipiv, b, &ldb,
             &info );
@@ -92,9 +95,10 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spsv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* ap, fortran_int_t* ipiv,
- std::complex<double>* b, fortran_int_t ldb ) {
+inline std::ptrdiff_t spsv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* ap,
+ fortran_int_t* ipiv, std::complex<double>* b,
+ const fortran_int_t ldb ) {
     fortran_int_t info(0);
     LAPACK_ZSPSV( &lapack_option< UpLo >::value, &n, &nrhs, ap, ipiv, b, &ldb,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/spsvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -54,11 +54,11 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const float* ap, float* afp, fortran_int_t* ipiv,
- const float* b, fortran_int_t ldb, float* x, fortran_int_t ldx,
- float& rcond, float* ferr, float* berr, float* work,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t spsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* ap, float* afp,
+ fortran_int_t* ipiv, const float* b, const fortran_int_t ldb,
+ float* x, const fortran_int_t ldx, float& rcond, float* ferr,
+ float* berr, float* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SSPSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, ap, afp,
             ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work, iwork, &info );
@@ -71,11 +71,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const double* ap, double* afp,
- fortran_int_t* ipiv, const double* b, fortran_int_t ldb, double* x,
- fortran_int_t ldx, double& rcond, double* ferr, double* berr,
- double* work, fortran_int_t* iwork ) {
+inline std::ptrdiff_t spsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* ap, double* afp,
+ fortran_int_t* ipiv, const double* b, const fortran_int_t ldb,
+ double* x, const fortran_int_t ldx, double& rcond, double* ferr,
+ double* berr, double* work, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DSPSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, ap, afp,
             ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work, iwork, &info );
@@ -88,12 +88,12 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* ap,
+inline std::ptrdiff_t spsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* ap,
         std::complex<float>* afp, fortran_int_t* ipiv,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float& rcond, float* ferr,
- float* berr, std::complex<float>* work, float* rwork ) {
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CSPSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, ap, afp,
             ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work, rwork, &info );
@@ -106,11 +106,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t spsvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* ap,
+inline std::ptrdiff_t spsvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* ap,
         std::complex<double>* afp, fortran_int_t* ipiv,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double& rcond,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
         double* ferr, double* berr, std::complex<double>* work,
         double* rwork ) {
     fortran_int_t info(0);

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,8 +49,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stev( char jobz, fortran_int_t n, float* d, float* e,
- float* z, fortran_int_t ldz, float* work ) {
+inline std::ptrdiff_t stev( const char jobz, const fortran_int_t n, float* d,
+ float* e, float* z, const fortran_int_t ldz, float* work ) {
     fortran_int_t info(0);
     LAPACK_SSTEV( &jobz, &n, d, e, z, &ldz, work, &info );
     return info;
@@ -61,8 +61,8 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stev( char jobz, fortran_int_t n, double* d, double* e,
- double* z, fortran_int_t ldz, double* work ) {
+inline std::ptrdiff_t stev( const char jobz, const fortran_int_t n, double* d,
+ double* e, double* z, const fortran_int_t ldz, double* work ) {
     fortran_int_t info(0);
     LAPACK_DSTEV( &jobz, &n, d, e, z, &ldz, work, &info );
     return info;

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,9 +50,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stevd( char jobz, fortran_int_t n, float* d, float* e,
- float* z, fortran_int_t ldz, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stevd( const char jobz, const fortran_int_t n, float* d,
+ float* e, float* z, const fortran_int_t ldz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSTEVD( &jobz, &n, d, e, z, &ldz, work, &lwork, iwork, &liwork,
             &info );
@@ -64,9 +65,10 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stevd( char jobz, fortran_int_t n, double* d, double* e,
- double* z, fortran_int_t ldz, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stevd( const char jobz, const fortran_int_t n, double* d,
+ double* e, double* z, const fortran_int_t ldz, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSTEVD( &jobz, &n, d, e, z, &ldz, work, &lwork, iwork, &liwork,
             &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -50,11 +50,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stevr( char jobz, char range, fortran_int_t n, float* d,
- float* e, float vl, float vu, fortran_int_t il, fortran_int_t iu,
- float abstol, fortran_int_t& m, float* w, float* z, fortran_int_t ldz,
- fortran_int_t* isuppz, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stevr( const char jobz, const char range,
+ const fortran_int_t n, float* d, float* e, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ const float abstol, fortran_int_t& m, float* w, float* z,
+ const fortran_int_t ldz, fortran_int_t* isuppz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSTEVR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &m,
             w, z, &ldz, isuppz, work, &lwork, iwork, &liwork, &info );
@@ -66,11 +68,13 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stevr( char jobz, char range, fortran_int_t n, double* d,
- double* e, double vl, double vu, fortran_int_t il, fortran_int_t iu,
- double abstol, fortran_int_t& m, double* w, double* z,
- fortran_int_t ldz, fortran_int_t* isuppz, double* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t stevr( const char jobz, const char range,
+ const fortran_int_t n, double* d, double* e, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w, double* z,
+ const fortran_int_t ldz, fortran_int_t* isuppz, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSTEVR( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &m,
             w, z, &ldz, isuppz, work, &lwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/stevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -49,10 +49,12 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * float value-type.
 //
-inline std::ptrdiff_t stevx( char jobz, char range, fortran_int_t n, float* d,
- float* e, float vl, float vu, fortran_int_t il, fortran_int_t iu,
- float abstol, fortran_int_t& m, float* w, float* z, fortran_int_t ldz,
- float* work, fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t stevx( const char jobz, const char range,
+ const fortran_int_t n, float* d, float* e, const float vl,
+ const float vu, const fortran_int_t il, const fortran_int_t iu,
+ const float abstol, fortran_int_t& m, float* w, float* z,
+ const fortran_int_t ldz, float* work, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_SSTEVX( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &m,
             w, z, &ldz, work, iwork, ifail, &info );
@@ -64,10 +66,11 @@
 // * netlib-compatible LAPACK backend (the default), and
 // * double value-type.
 //
-inline std::ptrdiff_t stevx( char jobz, char range, fortran_int_t n, double* d,
- double* e, double vl, double vu, fortran_int_t il, fortran_int_t iu,
- double abstol, fortran_int_t& m, double* w, double* z,
- fortran_int_t ldz, double* work, fortran_int_t* iwork,
+inline std::ptrdiff_t stevx( const char jobz, const char range,
+ const fortran_int_t n, double* d, double* e, const double vl,
+ const double vu, const fortran_int_t il, const fortran_int_t iu,
+ const double abstol, fortran_int_t& m, double* w, double* z,
+ const fortran_int_t ldz, double* work, fortran_int_t* iwork,
         fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_DSTEVX( &jobz, &range, &n, d, e, &vl, &vu, &il, &iu, &abstol, &m,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syev.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syev.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syev.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,8 +52,9 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syev( char jobz, UpLo, fortran_int_t n, float* a,
- fortran_int_t lda, float* w, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t syev( const char jobz, UpLo, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* w, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SSYEV( &jobz, &lapack_option< UpLo >::value, &n, a, &lda, w, work,
             &lwork, &info );
@@ -66,8 +67,9 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syev( char jobz, UpLo, fortran_int_t n, double* a,
- fortran_int_t lda, double* w, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t syev( const char jobz, UpLo, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* w, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DSYEV( &jobz, &lapack_option< UpLo >::value, &n, a, &lda, w, work,
             &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syevd( char jobz, UpLo, fortran_int_t n, float* a,
- fortran_int_t lda, float* w, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t syevd( const char jobz, UpLo, const fortran_int_t n,
+ float* a, const fortran_int_t lda, float* w, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSYEVD( &jobz, &lapack_option< UpLo >::value, &n, a, &lda, w, work,
             &lwork, iwork, &liwork, &info );
@@ -67,9 +68,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syevd( char jobz, UpLo, fortran_int_t n, double* a,
- fortran_int_t lda, double* w, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t syevd( const char jobz, UpLo, const fortran_int_t n,
+ double* a, const fortran_int_t lda, double* w, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSYEVD( &jobz, &lapack_option< UpLo >::value, &n, a, &lda, w, work,
             &lwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevr.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevr.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevr.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,13 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syevr( char jobz, char range, UpLo, fortran_int_t n,
- float* a, fortran_int_t lda, float vl, float vu, fortran_int_t il,
- fortran_int_t iu, float abstol, fortran_int_t& m, float* w, float* z,
- fortran_int_t ldz, fortran_int_t* isuppz, float* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t syevr( const char jobz, const char range, UpLo,
+ const fortran_int_t n, float* a, const fortran_int_t lda,
+ const float vl, const float vu, const fortran_int_t il,
+ const fortran_int_t iu, const float abstol, fortran_int_t& m,
+ float* w, float* z, const fortran_int_t ldz, fortran_int_t* isuppz,
+ float* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSYEVR( &jobz, &range, &lapack_option< UpLo >::value, &n, a, &lda,
             &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, isuppz, work, &lwork,
@@ -70,11 +72,13 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syevr( char jobz, char range, UpLo, fortran_int_t n,
- double* a, fortran_int_t lda, double vl, double vu, fortran_int_t il,
- fortran_int_t iu, double abstol, fortran_int_t& m, double* w,
- double* z, fortran_int_t ldz, fortran_int_t* isuppz, double* work,
- fortran_int_t lwork, fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t syevr( const char jobz, const char range, UpLo,
+ const fortran_int_t n, double* a, const fortran_int_t lda,
+ const double vl, const double vu, const fortran_int_t il,
+ const fortran_int_t iu, const double abstol, fortran_int_t& m,
+ double* w, double* z, const fortran_int_t ldz, fortran_int_t* isuppz,
+ double* work, const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSYEVR( &jobz, &range, &lapack_option< UpLo >::value, &n, a, &lda,
             &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, isuppz, work, &lwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/syevx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,11 +52,13 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syevx( char jobz, char range, UpLo, fortran_int_t n,
- float* a, fortran_int_t lda, float vl, float vu, fortran_int_t il,
- fortran_int_t iu, float abstol, fortran_int_t& m, float* w, float* z,
- fortran_int_t ldz, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t syevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, float* a, const fortran_int_t lda,
+ const float vl, const float vu, const fortran_int_t il,
+ const fortran_int_t iu, const float abstol, fortran_int_t& m,
+ float* w, float* z, const fortran_int_t ldz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_SSYEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, a, &lda,
             &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, work, &lwork, iwork,
@@ -70,11 +72,13 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t syevx( char jobz, char range, UpLo, fortran_int_t n,
- double* a, fortran_int_t lda, double vl, double vu, fortran_int_t il,
- fortran_int_t iu, double abstol, fortran_int_t& m, double* w,
- double* z, fortran_int_t ldz, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t syevx( const char jobz, const char range, UpLo,
+ const fortran_int_t n, double* a, const fortran_int_t lda,
+ const double vl, const double vu, const fortran_int_t il,
+ const fortran_int_t iu, const double abstol, fortran_int_t& m,
+ double* w, double* z, const fortran_int_t ldz, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_DSYEVX( &jobz, &range, &lapack_option< UpLo >::value, &n, a, &lda,
             &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz, work, &lwork, iwork,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,9 +52,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sygv( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb, float* w, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t sygv( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* w, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SSYGV( &itype, &jobz, &lapack_option< UpLo >::value, &n, a, &lda,
             b, &ldb, w, work, &lwork, &info );
@@ -67,9 +68,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sygv( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb, double* w, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t sygv( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, double* w, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DSYGV( &itype, &jobz, &lapack_option< UpLo >::value, &n, a, &lda,
             b, &ldb, w, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvd.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvd.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvd.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,10 +52,11 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sygvd( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb, float* w, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t sygvd( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, float* a, const fortran_int_t lda, float* b,
+ const fortran_int_t ldb, float* w, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_SSYGVD( &itype, &jobz, &lapack_option< UpLo >::value, &n, a, &lda,
             b, &ldb, w, work, &lwork, iwork, &liwork, &info );
@@ -68,10 +69,11 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sygvd( fortran_int_t itype, char jobz, UpLo,
- fortran_int_t n, double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb, double* w, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t liwork ) {
+inline std::ptrdiff_t sygvd( const fortran_int_t itype, const char jobz, UpLo,
+ const fortran_int_t n, double* a, const fortran_int_t lda, double* b,
+ const fortran_int_t ldb, double* w, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ const fortran_int_t liwork ) {
     fortran_int_t info(0);
     LAPACK_DSYGVD( &itype, &jobz, &lapack_option< UpLo >::value, &n, a, &lda,
             b, &ldb, w, work, &lwork, iwork, &liwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sygvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -52,12 +52,14 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sygvx( fortran_int_t itype, char jobz, char range, UpLo,
- fortran_int_t n, float* a, fortran_int_t lda, float* b,
- fortran_int_t ldb, float vl, float vu, fortran_int_t il,
- fortran_int_t iu, float abstol, fortran_int_t& m, float* w, float* z,
- fortran_int_t ldz, float* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t sygvx( const fortran_int_t itype, const char jobz,
+ const char range, UpLo, const fortran_int_t n, float* a,
+ const fortran_int_t lda, float* b, const fortran_int_t ldb,
+ const float vl, const float vu, const fortran_int_t il,
+ const fortran_int_t iu, const float abstol, fortran_int_t& m,
+ float* w, float* z, const fortran_int_t ldz, float* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_SSYGVX( &itype, &jobz, &range, &lapack_option< UpLo >::value, &n,
             a, &lda, b, &ldb, &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz,
@@ -71,12 +73,14 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sygvx( fortran_int_t itype, char jobz, char range, UpLo,
- fortran_int_t n, double* a, fortran_int_t lda, double* b,
- fortran_int_t ldb, double vl, double vu, fortran_int_t il,
- fortran_int_t iu, double abstol, fortran_int_t& m, double* w,
- double* z, fortran_int_t ldz, double* work, fortran_int_t lwork,
- fortran_int_t* iwork, fortran_int_t* ifail ) {
+inline std::ptrdiff_t sygvx( const fortran_int_t itype, const char jobz,
+ const char range, UpLo, const fortran_int_t n, double* a,
+ const fortran_int_t lda, double* b, const fortran_int_t ldb,
+ const double vl, const double vu, const fortran_int_t il,
+ const fortran_int_t iu, const double abstol, fortran_int_t& m,
+ double* w, double* z, const fortran_int_t ldz, double* work,
+ const fortran_int_t lwork, fortran_int_t* iwork,
+ fortran_int_t* ifail ) {
     fortran_int_t info(0);
     LAPACK_DSYGVX( &itype, &jobz, &range, &lapack_option< UpLo >::value, &n,
             a, &lda, b, &ldb, &vl, &vu, &il, &iu, &abstol, &m, w, z, &ldz,

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysv.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysv.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysv.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -55,9 +55,10 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sysv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- float* a, fortran_int_t lda, fortran_int_t* ipiv, float* b,
- fortran_int_t ldb, float* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t sysv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, float* a, const fortran_int_t lda,
+ fortran_int_t* ipiv, float* b, const fortran_int_t ldb, float* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_SSYSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, ipiv, b,
             &ldb, work, &lwork, &info );
@@ -70,9 +71,10 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sysv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- double* a, fortran_int_t lda, fortran_int_t* ipiv, double* b,
- fortran_int_t ldb, double* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t sysv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, double* a, const fortran_int_t lda,
+ fortran_int_t* ipiv, double* b, const fortran_int_t ldb, double* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_DSYSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, ipiv, b,
             &ldb, work, &lwork, &info );
@@ -85,10 +87,11 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sysv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<float>* a, fortran_int_t lda, fortran_int_t* ipiv,
- std::complex<float>* b, fortran_int_t ldb, std::complex<float>* work,
- fortran_int_t lwork ) {
+inline std::ptrdiff_t sysv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<float>* a,
+ const fortran_int_t lda, fortran_int_t* ipiv, std::complex<float>* b,
+ const fortran_int_t ldb, std::complex<float>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_CSYSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, ipiv, b,
             &ldb, work, &lwork, &info );
@@ -101,10 +104,11 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sysv( UpLo, fortran_int_t n, fortran_int_t nrhs,
- std::complex<double>* a, fortran_int_t lda, fortran_int_t* ipiv,
- std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* work, fortran_int_t lwork ) {
+inline std::ptrdiff_t sysv( UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, std::complex<double>* a,
+ const fortran_int_t lda, fortran_int_t* ipiv, std::complex<double>* b,
+ const fortran_int_t ldb, std::complex<double>* work,
+ const fortran_int_t lwork ) {
     fortran_int_t info(0);
     LAPACK_ZSYSV( &lapack_option< UpLo >::value, &n, &nrhs, a, &lda, ipiv, b,
             &ldb, work, &lwork, &info );

Modified: sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp
==============================================================================
--- sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp (original)
+++ sandbox/numeric_bindings/boost/numeric/bindings/lapack/driver/sysvx.hpp 2010-01-12 05:22:44 EST (Tue, 12 Jan 2010)
@@ -55,12 +55,12 @@
 // * float value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sysvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const float* a, fortran_int_t lda, float* af,
- fortran_int_t ldaf, fortran_int_t* ipiv, const float* b,
- fortran_int_t ldb, float* x, fortran_int_t ldx, float& rcond,
- float* ferr, float* berr, float* work, fortran_int_t lwork,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t sysvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const float* a, const fortran_int_t lda,
+ float* af, const fortran_int_t ldaf, fortran_int_t* ipiv,
+ const float* b, const fortran_int_t ldb, float* x,
+ const fortran_int_t ldx, float& rcond, float* ferr, float* berr,
+ float* work, const fortran_int_t lwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_SSYSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work,
@@ -74,12 +74,12 @@
 // * double value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sysvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const double* a, fortran_int_t lda, double* af,
- fortran_int_t ldaf, fortran_int_t* ipiv, const double* b,
- fortran_int_t ldb, double* x, fortran_int_t ldx, double& rcond,
- double* ferr, double* berr, double* work, fortran_int_t lwork,
- fortran_int_t* iwork ) {
+inline std::ptrdiff_t sysvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const double* a, const fortran_int_t lda,
+ double* af, const fortran_int_t ldaf, fortran_int_t* ipiv,
+ const double* b, const fortran_int_t ldb, double* x,
+ const fortran_int_t ldx, double& rcond, double* ferr, double* berr,
+ double* work, const fortran_int_t lwork, fortran_int_t* iwork ) {
     fortran_int_t info(0);
     LAPACK_DSYSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work,
@@ -93,13 +93,14 @@
 // * complex<float> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sysvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<float>* a, fortran_int_t lda,
- std::complex<float>* af, fortran_int_t ldaf, fortran_int_t* ipiv,
- const std::complex<float>* b, fortran_int_t ldb,
- std::complex<float>* x, fortran_int_t ldx, float& rcond, float* ferr,
- float* berr, std::complex<float>* work, fortran_int_t lwork,
- float* rwork ) {
+inline std::ptrdiff_t sysvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<float>* a,
+ const fortran_int_t lda, std::complex<float>* af,
+ const fortran_int_t ldaf, fortran_int_t* ipiv,
+ const std::complex<float>* b, const fortran_int_t ldb,
+ std::complex<float>* x, const fortran_int_t ldx, float& rcond,
+ float* ferr, float* berr, std::complex<float>* work,
+ const fortran_int_t lwork, float* rwork ) {
     fortran_int_t info(0);
     LAPACK_CSYSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work,
@@ -113,13 +114,14 @@
 // * complex<double> value-type.
 //
 template< typename UpLo >
-inline std::ptrdiff_t sysvx( char fact, UpLo, fortran_int_t n,
- fortran_int_t nrhs, const std::complex<double>* a, fortran_int_t lda,
- std::complex<double>* af, fortran_int_t ldaf, fortran_int_t* ipiv,
- const std::complex<double>* b, fortran_int_t ldb,
- std::complex<double>* x, fortran_int_t ldx, double& rcond,
+inline std::ptrdiff_t sysvx( const char fact, UpLo, const fortran_int_t n,
+ const fortran_int_t nrhs, const std::complex<double>* a,
+ const fortran_int_t lda, std::complex<double>* af,
+ const fortran_int_t ldaf, fortran_int_t* ipiv,
+ const std::complex<double>* b, const fortran_int_t ldb,
+ std::complex<double>* x, const fortran_int_t ldx, double& rcond,
         double* ferr, double* berr, std::complex<double>* work,
- fortran_int_t lwork, double* rwork ) {
+ const fortran_int_t lwork, double* rwork ) {
     fortran_int_t info(0);
     LAPACK_ZSYSVX( &fact, &lapack_option< UpLo >::value, &n, &nrhs, a, &lda,
             af, &ldaf, ipiv, b, &ldb, x, &ldx, &rcond, ferr, berr, work,


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk