Blitz logo

Blitz Support :

From: Julian Cummings (cummings_at_[hidden])
Date: 2003-12-11 14:46:13


Hi David,

There are several problems here. One is that there are many places
within both the blitz stencil code and the cfd example code where int
and double literals are being used. If these do not have an automatic
conversion to your wrapper class type, there will be trouble. The other
main issue is that your wrapper class type must act as an actual number
type and support the standard built-in math operators. If you would be
willing to send me directly a copy of your trevi.h header file, I might
be able to massage the code enough to get it working for you. The key
is to add explicit casts to the expected T_numtype in the appropriate
places, rather than using raw literal values.

Regards, Julian C.

david moloney wrote:

>I have a working overloaded class which is a wrapper for a double which
>I use fof profiling applications written using mtl and itl. I was
>interested in porting it to Blitz++ and tried it out using the cfd.cpp
>example provided.
>
>As shown below I can use a #define switch to switch between using
>doubles or my overloaded tr_doubles
>
>#define USE_TREVI
>
>#ifdef USE_TREVI
> #include "trevi.h"
> typedef tr_double dbl;
>#endif
>
>#ifndef USE_TREVI
> typedef double dbl;
>#endif
>
>cfd.cpp body with dbl substituted for double
>
>Obviously if I use double as the base type there is no issue,
>unfortunately when I compile the application
>using the tr_double class I get a large number of errors related to
>stencil.h and stencilops.h ... see attached logfile from gcc.
>
>Has anybody an idea of where to start solving this problem? I know a
>reasonable amount about C++ but have not used stencils to date.
>
>- David
>
>
>
>
>
>------------------------------------------------------------------------
>
>g++ -ftemplate-depth-30 -I/home/david/masters/Masters/Work/AppInterface/trevi/ -c -o cfd.o cfd.cpp
>cfd.cpp: In function `void setup (int, vectorField &, vectorField &,
>scalarField &, scalarField &, vectorField &, vectorField &)':
>cfd.cpp:192: no match for `blitz::Array<vector3d, 3> & = double'
>/usr/local/include/blitz/array-impl.h:2275: candidates are:
>blitz::ListInitializationSwitch<blitz::Array<T, N>, P_numtype *> blitz::Array<T, N>::operator=
>(P_numtype) [with P_numtype = vector3d, int N_rank = 3]
>/usr/local/include/blitz/array/ops.cc:78: blitz::Array<T, N> &blitz::Array<T,
>N>::operator= (const blitz::Array<T, N> &) [with P_numtype = vector3d, int N_rank = 3]
>cfd.cpp:194: no match for `blitz::Array<vector3d, 3> & = double'
>/usr/local/include/blitz/array-impl.h:2275: candidates are:
>blitz::ListInitializationSwitch<blitz::Array<T, N>, P_numtype *> blitz::Array<T, N>::operator=
>(P_numtype) [with P_numtype = vector3d, int N_rank = 3]
>/usr/local/include/blitz/array/ops.cc:78: blitz::Array<T, N> &blitz::Array<T,
>N>::operator= (const blitz::Array<T, N> &) [with P_numtype = vector3d, int N_rank = 3]
>cfd.cpp:195: no match for `blitz::Array<vector3d, 3> & = double'
>/usr/local/include/blitz/array-impl.h:2275: candidates are:
>blitz::ListInitializationSwitch<blitz::Array<T, N>, P_numtype *> blitz::Array<T, N>::operator=
>(P_numtype) [with P_numtype = vector3d, int N_rank = 3]
>/usr/local/include/blitz/array/ops.cc:78: blitz::Array<T, N> &blitz::Array<T,
>N>::operator= (const blitz::Array<T, N> &) [with P_numtype = vector3d, int N_rank = 3]
>cfd.cpp: In function `int main ()':
>cfd.cpp:414: no match for `vectorField & = double'
>/usr/local/include/blitz/array-impl.h:2275: candidates are:
>blitz::ListInitializationSwitch<blitz::Array<T, N>, P_numtype *> blitz::Array<T, N>::operator=
>(P_numtype) [with P_numtype = vector3d, int N_rank = 3]
>/usr/local/include/blitz/array/ops.cc:78: blitz::Array<T, N> &blitz::Array<T,
>N>::operator= (const blitz::Array<T, N> &) [with P_numtype = vector3d, int N_rank = 3]
>/usr/local/include/blitz/array/stencilops.h: In function `typename T::T_numtype blitz::Laplacian3D4 (T
>&) [with T = blitz::stencilExtent<3, dbl>]':
>/usr/local/include/blitz/array/stencilops.h:111: instantiated from `blitz::Laplacian3D4n (T &) [with T = blitz::stencilExtent<3, dbl>]'
>/usr/local/include/blitz/array/stencilops.h:1112: instantiated from `blitz::Laplacian3D4 (T &, const blitz::UniformCubicGeometry<3, T_defaultSpatialCoordinate> &) [with T = blitz::stencilExtent<3, dbl>]'
>cfd.cpp:156: instantiated from `P_solver_update::apply (T1 &, T2 &, T3, T4, T5, T6, T7, T8, T9, T10, T11) [with T1 = blitz::stencilExtent<3, dbl>, T2 = blitz::stencilExtent<3, dbl>, T3 = blitz::dummy<double>, T4 = blitz::dummy<double>, T5 = blitz::dummy<double>, T6 = blitz::dummy<double>, T7 = blitz::dummy<double>, T8 = blitz::dummy<double>, T9 = blitz::dummy<double>, T10 = blitz::dummy<double>, T11 = blitz::dummy<double>]'
>/usr/local/include/blitz/array/stencils.cc:116: instantiated from `blitz::calcStencilExtent (T_extent &, const T_stencil &, const blitz::Array<T_numtype1, N_rank> &, const T_array2 &, const T_array3 &, const T_array4 &, const T_array5 &, const T_array6 &, const T_array7 &, const T_array8 &, const T_array9 &, const T_array10 &, const T_array11 &) [with T_extent = blitz::stencilExtent<3, dbl>, int N_rank = 3, T_stencil = P_solver_update, T_numtype1 = dbl, T_array2 = blitz::Array<dbl, 3>, T_array3 = blitz::dummyArray, T_array4 = blitz::dummyArray, T_array5 = blitz::dummyArray, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:140: instantiated from `blitz::interiorDomain (const T_stencil &, const blitz::Array<T_numtype1, N_rank> &, const T_array2 &) [with int N_rank = 3, T_stencil = P_solver_update, T_numtype1 = dbl, T_array2 = blitz::Array<dbl, 3>]'
>/usr/local/include/blitz/array/cgsolve.h:71: instantiated from `blitz::conjugateGradientSolver (T_stencil, blitz::Array<T_numtype1, N_rank> &, blitz::Array<T_numtype1, N_rank> &, double, const T_BCs &) [with T_stencil = P_solver_update, T_numtype = dbl, int N_rank = 3, T_BCs = PressureBCs]'
>cfd.cpp:335: instantiated from here
>/usr/local/include/blitz/array/stencilops.h:107: no match for `blitz::dummy<dbl> + blitz::dummy<dbl>'
>/usr/local/include/blitz/meta/metaprog.h:56: candidates are: T blitz::operator+ (const T &,
>blitz::_bz_meta_nullOperand) [with T = blitz::dummy<dbl>]
>/usr/local/include/blitz/vecbops.cc:621:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::Range, blitz::_bz_Add<int, int> > >
>blitz::operator+ (blitz::Range, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:655:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<float>,
>blitz::_bz_Add<int, float> > > blitz::operator+ (blitz::Range, float)
>/usr/local/include/blitz/vecbops.cc:672:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<double>,
>blitz::_bz_Add<int, double> > > blitz::operator+ (blitz::Range, double)
>/usr/local/include/blitz/vecbops.cc:689:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<long double>,
>blitz::_bz_Add<int, long double> > > blitz::operator+ (blitz::Range, long double)
>/usr/local/include/blitz/vecbops.cc:1018:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<float>, blitz::Range,
>blitz::_bz_Add<float, int> > > blitz::operator+ (float, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:1103:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<double>, blitz::Range,
>blitz::_bz_Add<double, int> > > blitz::operator+ (double, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:1188:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<long double>, blitz::Range,
>blitz::_bz_Add<long double, int> > > blitz::operator+ (long double, blitz::Range)
>/usr/include/g++-3/std/ldcomplex.h:62: complex<long
>double> operator+ (long double, const complex<long double> &)
>/usr/include/g++-3/std/ldcomplex.h:60: complex<long
>double> operator+ (const complex<long double> &, long double)
>/usr/include/g++-3/std/dcomplex.h:62: complex<double>
>operator+ (double, const complex<double> &)
>/usr/include/g++-3/std/dcomplex.h:60: complex<double>
>operator+ (const complex<double> &, double)
>/usr/include/g++-3/std/fcomplex.h:62: complex<float>
>operator+ (float, const complex<float> &)
>/usr/include/g++-3/std/fcomplex.h:60: complex<float>
>operator+ (const complex<float> &, float)
>/usr/local/include/blitz/array/stencilops.h:111: instantiated from `blitz::Laplacian3D4n (T &) [with T = blitz::stencilExtent<3, dbl>]'
>/usr/local/include/blitz/array/stencilops.h:1112: instantiated from `blitz::Laplacian3D4 (T &, const blitz::UniformCubicGeometry<3, T_defaultSpatialCoordinate> &) [with T = blitz::stencilExtent<3, dbl>]'
>cfd.cpp:156: instantiated from `P_solver_update::apply (T1 &, T2 &, T3, T4, T5, T6, T7, T8, T9, T10, T11) [with T1 = blitz::stencilExtent<3, dbl>, T2 = blitz::stencilExtent<3, dbl>, T3 = blitz::dummy<double>, T4 = blitz::dummy<double>, T5 = blitz::dummy<double>, T6 = blitz::dummy<double>, T7 = blitz::dummy<double>, T8 = blitz::dummy<double>, T9 = blitz::dummy<double>, T10 = blitz::dummy<double>, T11 = blitz::dummy<double>]'
>/usr/local/include/blitz/array/stencils.cc:116: instantiated from `blitz::calcStencilExtent (T_extent &, const T_stencil &, const blitz::Array<T_numtype1, N_rank> &, const T_array2 &, const T_array3 &, const T_array4 &, const T_array5 &, const T_array6 &, const T_array7 &, const T_array8 &, const T_array9 &, const T_array10 &, const T_array11 &) [with T_extent = blitz::stencilExtent<3, dbl>, int N_rank = 3, T_stencil = P_solver_update, T_numtype1 = dbl, T_array2 = blitz::Array<dbl, 3>, T_array3 = blitz::dummyArray, T_array4 = blitz::dummyArray, T_array5 = blitz::dummyArray, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:140: instantiated from `blitz::interiorDomain (const T_stencil &, const blitz::Array<T_numtype1, N_rank> &, const T_array2 &) [with int N_rank = 3, T_stencil = P_solver_update, T_numtype1 = dbl, T_array2 = blitz::Array<dbl, 3>]'
>/usr/local/include/blitz/array/cgsolve.h:71: instantiated from `blitz::conjugateGradientSolver (T_stencil, blitz::Array<T_numtype1, N_rank> &, blitz::Array<T_numtype1, N_rank> &, double, const T_BCs &) [with T_stencil = P_solver_update, T_numtype = dbl, int N_rank = 3, T_BCs = PressureBCs]'
>cfd.cpp:335: instantiated from here
>/usr/local/include/blitz/array/stencilops.h:107: no match for `blitz::dummy<dbl> + blitz::dummy<dbl>'
>/usr/local/include/blitz/meta/metaprog.h:56: candidates are: T blitz::operator+ (const T &,
>blitz::_bz_meta_nullOperand) [with T = blitz::dummy<dbl>]
>/usr/local/include/blitz/vecbops.cc:621:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::Range, blitz::_bz_Add<int, int> > >
>blitz::operator+ (blitz::Range, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:655:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<float>,
>blitz::_bz_Add<int, float> > > blitz::operator+ (blitz::Range, float)
>/usr/local/include/blitz/vecbops.cc:672:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<double>,
>blitz::_bz_Add<int, double> > > blitz::operator+ (blitz::Range, double)
>/usr/local/include/blitz/vecbops.cc:689:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<long double>,
>blitz::_bz_Add<int, long double> > > blitz::operator+ (blitz::Range, long double)
>/usr/local/include/blitz/vecbops.cc:1018:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<float>, blitz::Range,
>blitz::_bz_Add<float, int> > > blitz::operator+ (float, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:1103:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<double>, blitz::Range,
>blitz::_bz_Add<double, int> > > blitz::operator+ (double, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:1188:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<long double>, blitz::Range,
>blitz::_bz_Add<long double, int> > > blitz::operator+ (long double, blitz::Range)
>/usr/include/g++-3/std/ldcomplex.h:62: complex<long
>double> operator+ (long double, const complex<long double> &)
>/usr/include/g++-3/std/ldcomplex.h:60: complex<long
>double> operator+ (const complex<long double> &, long double)
>/usr/include/g++-3/std/dcomplex.h:62: complex<double>
>operator+ (double, const complex<double> &)
>/usr/include/g++-3/std/dcomplex.h:60: complex<double>
>operator+ (const complex<double> &, double)
>/usr/include/g++-3/std/fcomplex.h:62: complex<float>
>operator+ (float, const complex<float> &)
>/usr/include/g++-3/std/fcomplex.h:60: complex<float>
>operator+ (const complex<float> &, float)
>/usr/local/include/blitz/array/stencilops.h:107: no match for `double * blitz::stencilExtent<3, dbl> &'
>/usr/local/include/blitz/meta/metaprog.h:58: candidates are: T blitz::operator* (const T &,
>blitz::_bz_meta_nullOperand) [with T = double]
>/usr/local/include/blitz/vecbops.cc:3169:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::Range, blitz::_bz_Multiply<int, int> > >
>blitz::operator* (blitz::Range, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:3203:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<float>,
>blitz::_bz_Multiply<int, float> > > blitz::operator* (blitz::Range, float)
>/usr/local/include/blitz/vecbops.cc:3220:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<double>,
>blitz::_bz_Multiply<int, double> > > blitz::operator* (blitz::Range, double)
>/usr/local/include/blitz/vecbops.cc:3237:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<long double>,
>blitz::_bz_Multiply<int, long double> > > blitz::operator* (blitz::Range, long double)
>/usr/local/include/blitz/vecbops.cc:3566:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<float>, blitz::Range,
>blitz::_bz_Multiply<float, int> > > blitz::operator* (float, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:3651:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<double>, blitz::Range,
>blitz::_bz_Multiply<double, int> > > blitz::operator* (double, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:3736:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<long double>, blitz::Range,
>blitz::_bz_Multiply<long double, int> > > blitz::operator* (long double, blitz::Range)
>/usr/include/g++-3/std/ldcomplex.h:70: complex<long
>double> operator* (long double, const complex<long double> &)
>/usr/include/g++-3/std/ldcomplex.h:68: complex<long
>double> operator* (const complex<long double> &, long double)
>/usr/include/g++-3/std/dcomplex.h:70: complex<double>
>operator* (double, const complex<double> &)
>/usr/include/g++-3/std/dcomplex.h:68: complex<double>
>operator* (const complex<double> &, double)
>/usr/include/g++-3/std/fcomplex.h:70: complex<float>
>operator* (float, const complex<float> &)
>/usr/include/g++-3/std/fcomplex.h:68: complex<float>
>operator* (const complex<float> &, float)
>/usr/local/include/blitz/array/stencilops.h: In function `typename T::T_numtype blitz::Laplacian3D4 (T
>&) [with T = blitz::FastArrayIterator<dbl, 3>]':
>/usr/local/include/blitz/array/stencilops.h:111: instantiated from `blitz::Laplacian3D4n (T &) [with T = blitz::FastArrayIterator<dbl, 3>]'
>/usr/local/include/blitz/array/stencilops.h:1112: instantiated from `blitz::Laplacian3D4 (T &, const blitz::UniformCubicGeometry<3, T_defaultSpatialCoordinate> &) [with T = blitz::FastArrayIterator<dbl, 3>]'
>cfd.cpp:156: instantiated from `P_solver_update::apply (T1 &, T2 &, T3, T4, T5, T6, T7, T8, T9, T10, T11) [with T1 = blitz::FastArrayIterator<dbl, 3>, T2 = blitz::FastArrayIterator<dbl, 3>, T3 = blitz::dummy<double>, T4 = blitz::dummy<double>, T5 = blitz::dummy<double>, T6 = blitz::dummy<double>, T7 = blitz::dummy<double>, T8 = blitz::dummy<double>, T9 = blitz::dummy<double>, T10 = blitz::dummy<double>, T11 = blitz::dummy<double>]'
>/usr/local/include/blitz/array/stencils.cc:292: instantiated from `blitz::applyStencil_imp (const T_stencil &, blitz::Array<T_numtype1, 3> &, T_array2 &, T_array3 &, T_array4 &, T_array5 &, T_array6 &, T_array7 &, T_array8 &, T_array9 &, T_array10 &, T_array11 &) [with T_stencil = P_solver_update, T_numtype1 = dbl, T_array2 = blitz::Array<dbl, 3>, T_array3 = blitz::dummyArray, T_array4 = blitz::dummyArray, T_array5 = blitz::dummyArray, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:520: instantiated from `blitz::applyStencil (const T_stencil &, blitz::Array<T_numtype1, N_rank> &, T_array2 &) [with T_stencil = P_solver_update, T_numtype1 = dbl, int N_rank = 3, T_array2 = blitz::Array<dbl, 3>]'
>/usr/local/include/blitz/array/cgsolve.h:82: instantiated from `blitz::conjugateGradientSolver (T_stencil, blitz::Array<T_numtype1, N_rank> &, blitz::Array<T_numtype1, N_rank> &, double, const T_BCs &) [with T_stencil = P_solver_update, T_numtype = dbl, int N_rank = 3, T_BCs = PressureBCs]'
>cfd.cpp:335: instantiated from here
>/usr/local/include/blitz/array/stencilops.h:107: no match for `double * blitz::FastArrayIterator<dbl,
>3> &'
>/usr/local/include/blitz/meta/metaprog.h:58: candidates are: T blitz::operator* (const T &,
>blitz::_bz_meta_nullOperand) [with T = double]
>/usr/local/include/blitz/vecbops.cc:3169:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::Range, blitz::_bz_Multiply<int, int> > >
>blitz::operator* (blitz::Range, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:3203:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<float>,
>blitz::_bz_Multiply<int, float> > > blitz::operator* (blitz::Range, float)
>/usr/local/include/blitz/vecbops.cc:3220:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<double>,
>blitz::_bz_Multiply<int, double> > > blitz::operator* (blitz::Range, double)
>/usr/local/include/blitz/vecbops.cc:3237:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<long double>,
>blitz::_bz_Multiply<int, long double> > > blitz::operator* (blitz::Range, long double)
>/usr/local/include/blitz/vecbops.cc:3566:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<float>, blitz::Range,
>blitz::_bz_Multiply<float, int> > > blitz::operator* (float, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:3651:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<double>, blitz::Range,
>blitz::_bz_Multiply<double, int> > > blitz::operator* (double, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:3736:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<long double>, blitz::Range,
>blitz::_bz_Multiply<long double, int> > > blitz::operator* (long double, blitz::Range)
>/usr/include/g++-3/std/ldcomplex.h:70: complex<long
>double> operator* (long double, const complex<long double> &)
>/usr/include/g++-3/std/ldcomplex.h:68: complex<long
>double> operator* (const complex<long double> &, long double)
>/usr/include/g++-3/std/dcomplex.h:70: complex<double>
>operator* (double, const complex<double> &)
>/usr/include/g++-3/std/dcomplex.h:68: complex<double>
>operator* (const complex<double> &, double)
>/usr/include/g++-3/std/fcomplex.h:70: complex<float>
>operator* (float, const complex<float> &)
>/usr/include/g++-3/std/fcomplex.h:68: complex<float>
>operator* (const complex<float> &, float)
>/usr/local/include/blitz/array/stencilops.h: In function `typename T::T_numtype blitz::central14 (T &,
>int) [with T = blitz::stencilExtent<3, dbl>]':
>/usr/local/include/blitz/array/stencilops.h:1171: instantiated from `blitz::grad3D4 (T &, const blitz::UniformCubicGeometry<3, T_defaultSpatialCoordinate> &) [with T = blitz::stencilExtent<3, dbl>]'
>cfd.cpp:139: instantiated from `timestep::apply (T1 &, T2 &, T3 &, T4 &, T5 &, T6, T7, T8, T9, T10, T11) [with T1 = blitz::stencilExtent<3, vector3d>, T2 = blitz::stencilExtent<3, vector3d>, T3 = blitz::stencilExtent<3, dbl>, T4 = blitz::stencilExtent<3, vector3d>, T5 = blitz::stencilExtent<3, vector3d>, T6 = blitz::dummy<double>, T7 = blitz::dummy<double>, T8 = blitz::dummy<double>, T9 = blitz::dummy<double>, T10 = blitz::dummy<double>, T11 = blitz::dummy<double>]'
>/usr/local/include/blitz/array/stencils.cc:116: instantiated from `blitz::calcStencilExtent (T_extent &, const T_stencil &, const blitz::Array<T_numtype1, N_rank> &, const T_array2 &, const T_array3 &, const T_array4 &, const T_array5 &, const T_array6 &, const T_array7 &, const T_array8 &, const T_array9 &, const T_array10 &, const T_array11 &) [with T_extent = blitz::stencilExtent<3, vector3d>, int N_rank = 3, T_stencil = timestep, T_numtype1 = vector3d, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::Array<dbl, 3>, T_array4 = blitz::Array<vector3d, 3>, T_array5 = blitz::Array<vector3d, 3>, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:164: instantiated from `blitz::_getStencilExtent<hasExtents>::getStencilExtent (blitz::TinyVector<int, N_rank> &, blitz::TinyVector<int, N_rank> &, const T_stencil &, blitz::Array<T_numtype1, N_rank> &, T_array2 &, T_array3 &, T_array4 &, T_array5 &, T_array6 &, T_array7 &, T_array8 &, T_array9 &, T_array10 &, T_array11 &) [with int N_rank = 3, T_stencil = timestep, T_numtype1 = vector3d, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::Array<dbl, 3>, T_array4 = blitz::Array<vector3d, 3>, T_array5 = blitz::Array<vector3d, 3>, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray, int hasExtents = 0]'
>/usr/local/include/blitz/array/stencils.cc:199: instantiated from `blitz::getStencilExtent (blitz::TinyVector<int, N_rank> &, blitz::TinyVector<int, N_rank> &, const T_stencil &, blitz::Array<T_numtype1, N_rank> &, T_array2 &, T_array3 &, T_array4 &, T_array5 &, T_array6 &, T_array7 &, T_array8 &, T_array9 &, T_array10 &, T_array11 &) [with int N_rank = 3, T_stencil = timestep, T_numtype1 = vector3d, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::Array<dbl, 3>, T_array4 = blitz::Array<vector3d, 3>, T_array5 = blitz::Array<vector3d, 3>, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:219: instantiated from `blitz::applyStencil_imp (const T_stencil &, blitz::Array<T_numtype1, 3> &, T_array2 &, T_array3 &, T_array4 &, T_array5 &, T_array6 &, T_array7 &, T_array8 &, T_array9 &, T_array10 &, T_array11 &) [with T_stencil = timestep, T_numtype1 = vector3d, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::Array<dbl, 3>, T_array4 = blitz::Array<vector3d, 3>, T_array5 = blitz::Array<vector3d, 3>, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:548: instantiated from `blitz::applyStencil (const T_stencil &, blitz::Array<T_numtype1, N_rank> &, T_array2 &, T_array3 &, T_array4 &, T_array5 &) [with T_stencil = timestep, T_numtype1 = vector3d, int N_rank = 3, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::Array<dbl, 3>, T_array4 = blitz::Array<vector3d, 3>, T_array5 = blitz::Array<vector3d, 3>]'
>cfd.cpp:338: instantiated from here
>/usr/local/include/blitz/array/stencilops.h:217: no match for `blitz::dummy<dbl> - blitz::dummy<dbl>'
>/usr/local/include/blitz/vecexpr.h:289: candidates are:
>blitz::_bz_VecExpr<blitz::_bz_VecExprUnaryOp<blitz::Range,
>blitz::_bz_negate<int> > > blitz::operator- (blitz::Range)
>/usr/local/include/blitz/vecbops.cc:1895:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::Range, blitz::_bz_Subtract<int, int> > >
>blitz::operator- (blitz::Range, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:1929:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<float>,
>blitz::_bz_Subtract<int, float> > > blitz::operator- (blitz::Range, float)
>/usr/local/include/blitz/vecbops.cc:1946:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<double>,
>blitz::_bz_Subtract<int, double> > > blitz::operator- (blitz::Range, double)
>/usr/local/include/blitz/vecbops.cc:1963:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<long double>,
>blitz::_bz_Subtract<int, long double> > > blitz::operator- (blitz::Range, long double)
>/usr/local/include/blitz/vecbops.cc:2292:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<float>, blitz::Range,
>blitz::_bz_Subtract<float, int> > > blitz::operator- (float, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:2377:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<double>, blitz::Range,
>blitz::_bz_Subtract<double, int> > > blitz::operator- (double, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:2462:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<long double>, blitz::Range,
>blitz::_bz_Subtract<long double, int> > > blitz::operator- (long double, blitz::Range)
>/usr/include/g++-3/std/ldcomplex.h:66: complex<long
>double> operator- (long double, const complex<long double> &)
>/usr/include/g++-3/std/ldcomplex.h:64: complex<long
>double> operator- (const complex<long double> &, long double)
>/usr/include/g++-3/std/dcomplex.h:66: complex<double>
>operator- (double, const complex<double> &)
>/usr/include/g++-3/std/dcomplex.h:64: complex<double>
>operator- (const complex<double> &, double)
>/usr/include/g++-3/std/fcomplex.h:66: complex<float>
>operator- (float, const complex<float> &)
>/usr/include/g++-3/std/fcomplex.h:64: complex<float>
>operator- (const complex<float> &, float)
>/usr/local/include/blitz/array/stencilops.h:217: no match for `blitz::dummy<dbl> - blitz::dummy<dbl>'
>/usr/local/include/blitz/vecexpr.h:289: candidates are:
>blitz::_bz_VecExpr<blitz::_bz_VecExprUnaryOp<blitz::Range,
>blitz::_bz_negate<int> > > blitz::operator- (blitz::Range)
>/usr/local/include/blitz/vecbops.cc:1895:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::Range, blitz::_bz_Subtract<int, int> > >
>blitz::operator- (blitz::Range, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:1929:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<float>,
>blitz::_bz_Subtract<int, float> > > blitz::operator- (blitz::Range, float)
>/usr/local/include/blitz/vecbops.cc:1946:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<double>,
>blitz::_bz_Subtract<int, double> > > blitz::operator- (blitz::Range, double)
>/usr/local/include/blitz/vecbops.cc:1963:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::Range, blitz::_bz_VecExprConstant<long double>,
>blitz::_bz_Subtract<int, long double> > > blitz::operator- (blitz::Range, long double)
>/usr/local/include/blitz/vecbops.cc:2292:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<float>, blitz::Range,
>blitz::_bz_Subtract<float, int> > > blitz::operator- (float, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:2377:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<double>, blitz::Range,
>blitz::_bz_Subtract<double, int> > > blitz::operator- (double, blitz::Range)
>/usr/local/include/blitz/vecbops.cc:2462:
>blitz::_bz_VecExpr<blitz::_bz_VecExprOp<blitz::_bz_VecExprConstant<long double>, blitz::Range,
>blitz::_bz_Subtract<long double, int> > > blitz::operator- (long double, blitz::Range)
>/usr/include/g++-3/std/ldcomplex.h:66: complex<long
>double> operator- (long double, const complex<long double> &)
>/usr/include/g++-3/std/ldcomplex.h:64: complex<long
>double> operator- (const complex<long double> &, long double)
>/usr/include/g++-3/std/dcomplex.h:66: complex<double>
>operator- (double, const complex<double> &)
>/usr/include/g++-3/std/dcomplex.h:64: complex<double>
>operator- (const complex<double> &, double)
>/usr/include/g++-3/std/fcomplex.h:66: complex<float>
>operator- (float, const complex<float> &)
>/usr/include/g++-3/std/fcomplex.h:64: complex<float>
>operator- (const complex<float> &, float)
>/usr/local/include/blitz/array/stencils.h: In method `blitz::dummy<P_numtype>
>blitz::stencilExtent<N_rank, P_numtype>::shift (int, int) [with int N_rank = 3, P_numtype = vector3d]':
>/usr/local/include/blitz/array/stencilops.h:241: instantiated from `blitz::central14 (T &, int, int) [with T = blitz::stencilExtent<3, vector3d>]'
>/usr/local/include/blitz/array/stencilops.h:1105: instantiated from `blitz::div3DVec4 (T &, const blitz::UniformCubicGeometry<3, T_defaultSpatialCoordinate> &) [with T = blitz::stencilExtent<3, vector3d>]'
>cfd.cpp:148: instantiated from `calc_P_rhs::apply (T1 &, T2 &, T3, T4, T5, T6, T7, T8, T9, T10, T11) [with T1 = blitz::stencilExtent<3, dbl>, T2 = blitz::stencilExtent<3, vector3d>, T3 = blitz::dummy<double>, T4 = blitz::dummy<double>, T5 = blitz::dummy<double>, T6 = blitz::dummy<double>, T7 = blitz::dummy<double>, T8 = blitz::dummy<double>, T9 = blitz::dummy<double>, T10 = blitz::dummy<double>, T11 = blitz::dummy<double>]'
>/usr/local/include/blitz/array/stencils.cc:116: instantiated from `blitz::calcStencilExtent (T_extent &, const T_stencil &, const blitz::Array<T_numtype1, N_rank> &, const T_array2 &, const T_array3 &, const T_array4 &, const T_array5 &, const T_array6 &, const T_array7 &, const T_array8 &, const T_array9 &, const T_array10 &, const T_array11 &) [with T_extent = blitz::stencilExtent<3, dbl>, int N_rank = 3, T_stencil = calc_P_rhs, T_numtype1 = dbl, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::dummyArray, T_array4 = blitz::dummyArray, T_array5 = blitz::dummyArray, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:164: instantiated from `blitz::_getStencilExtent<hasExtents>::getStencilExtent (blitz::TinyVector<int, N_rank> &, blitz::TinyVector<int, N_rank> &, const T_stencil &, blitz::Array<T_numtype1, N_rank> &, T_array2 &, T_array3 &, T_array4 &, T_array5 &, T_array6 &, T_array7 &, T_array8 &, T_array9 &, T_array10 &, T_array11 &) [with int N_rank = 3, T_stencil = calc_P_rhs, T_numtype1 = dbl, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::dummyArray, T_array4 = blitz::dummyArray, T_array5 = blitz::dummyArray, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray, int hasExtents = 0]'
>/usr/local/include/blitz/array/stencils.cc:199: instantiated from `blitz::getStencilExtent (blitz::TinyVector<int, N_rank> &, blitz::TinyVector<int, N_rank> &, const T_stencil &, blitz::Array<T_numtype1, N_rank> &, T_array2 &, T_array3 &, T_array4 &, T_array5 &, T_array6 &, T_array7 &, T_array8 &, T_array9 &, T_array10 &, T_array11 &) [with int N_rank = 3, T_stencil = calc_P_rhs, T_numtype1 = dbl, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::dummyArray, T_array4 = blitz::dummyArray, T_array5 = blitz::dummyArray, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:219: instantiated from `blitz::applyStencil_imp (const T_stencil &, blitz::Array<T_numtype1, 3> &, T_array2 &, T_array3 &, T_array4 &, T_array5 &, T_array6 &, T_array7 &, T_array8 &, T_array9 &, T_array10 &, T_array11 &) [with T_stencil = calc_P_rhs, T_numtype1 = dbl, T_array2 = blitz::Array<vector3d, 3>, T_array3 = blitz::dummyArray, T_array4 = blitz::dummyArray, T_array5 = blitz::dummyArray, T_array6 = blitz::dummyArray, T_array7 = blitz::dummyArray, T_array8 = blitz::dummyArray, T_array9 = blitz::dummyArray, T_array10 = blitz::dummyArray, T_array11 = blitz::dummyArray]'
>/usr/local/include/blitz/array/stencils.cc:520: instantiated from `blitz::applyStencil (const T_stencil &, blitz::Array<T_numtype1, N_rank> &, T_array2 &) [with T_stencil = calc_P_rhs, T_numtype1 = dbl, int N_rank = 3, T_array2 = blitz::Array<vector3d, 3>]'
>cfd.cpp:333: instantiated from here
>/usr/local/include/blitz/array/stencils.h:246: no matching function for call to
>`blitz::dummy<vector3d>::dummy (int)'
>/usr/local/include/blitz/array/stencils.h:174: candidates are: blitz::dummy<T>::dummy () [with T =
>vector3d]
>/usr/local/include/blitz/array/stencils.h:177: blitz::dummy<T>::dummy (T) [with T =
>vector3d]
>/usr/local/include/blitz/array/stencils.h:181: blitz::dummy<T>::dummy (const
>blitz::dummyArray &) [with T = vector3d]
>/usr/local/include/blitz/array/stencils.h:172: blitz::dummy<vector3d>::dummy (const
>blitz::dummy<vector3d> &)
>make: *** [cfd.o] Error 1
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Blitz-support mailing list
>Blitz-support_at_[hidden]
>http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support
>
>

-- 
Dr. Julian C. Cummings                       E-mail: cummings_at_[hidden]
California Institute of Technology           Phone:  626-395-2543
1200 E. California Blvd., Mail Code 158-79   Fax:    626-584-5917
Pasadena, CA 91125