// *************** DO NOT MODIFY!!! ***********
//  ** AUTOMATICALLY GENERATED SRC CODE **

#define CallWithContainer3D_0(fct,typeName)\
    if(typeName=="Image3Df"){fct< Image3Df >();}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >();}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >();}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >();}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >();}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >();}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >();}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >();}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >();}\
    else\
    {ThrowError("CallWithContainer3D_0 failed, type \"%s\" is not in template group \"Container3D\"",typeName);}
#define CallWithContainer3D_1(fct,typeName,a0)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0);}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >(a0);}\
    else\
    {ThrowError("CallWithContainer3D_1 failed, type \"%s\" is not in template group \"Container3D\"",typeName);}
#define CallWithContainer3D_2(fct,typeName,a0,a1)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1);}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >(a0,a1);}\
    else\
    {ThrowError("CallWithContainer3D_2 failed, type \"%s\" is not in template group \"Container3D\"",typeName);}
#define CallWithContainer3D_3(fct,typeName,a0,a1,a2)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1,a2);}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >(a0,a1,a2);}\
    else\
    {ThrowError("CallWithContainer3D_3 failed, type \"%s\" is not in template group \"Container3D\"",typeName);}
#define CallWithContainer3D_4(fct,typeName,a0,a1,a2,a3)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >(a0,a1,a2,a3);}\
    else\
    {ThrowError("CallWithContainer3D_4 failed, type \"%s\" is not in template group \"Container3D\"",typeName);}
#define CallWithContainer3Da_0(fct,typeName)\
    if(typeName=="Image3Df"){fct< Image3Df >();}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >();}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >();}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >();}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >();}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >();}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >();}\
    else\
    {ThrowError("CallWithContainer3Da_0 failed, type \"%s\" is not in template group \"Container3Da\"",typeName);}
#define CallWithContainer3Da_1(fct,typeName,a0)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0);}\
    else\
    {ThrowError("CallWithContainer3Da_1 failed, type \"%s\" is not in template group \"Container3Da\"",typeName);}
#define CallWithContainer3Da_2(fct,typeName,a0,a1)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1);}\
    else\
    {ThrowError("CallWithContainer3Da_2 failed, type \"%s\" is not in template group \"Container3Da\"",typeName);}
#define CallWithContainer3Da_3(fct,typeName,a0,a1,a2)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2);}\
    else\
    {ThrowError("CallWithContainer3Da_3 failed, type \"%s\" is not in template group \"Container3Da\"",typeName);}
#define CallWithContainer3Da_4(fct,typeName,a0,a1,a2,a3)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2,a3);}\
    else\
    {ThrowError("CallWithContainer3Da_4 failed, type \"%s\" is not in template group \"Container3Da\"",typeName);}
#define CallWithImage3Dlinear_0(fct,typeName)\
    if(typeName=="Image3Df"){fct< Image3Df >();}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >();}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >();}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >();}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >();}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >();}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >();}\
    else\
    if(typeName=="Image3Dlinear<Vect3Df>"){fct< Image3Dlinear<Vect3Df> >();}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >();}\
    else\
    {ThrowError("CallWithImage3Dlinear_0 failed, type \"%s\" is not in template group \"Image3Dlinear\"",typeName);}
#define CallWithImage3Dlinear_1(fct,typeName,a0)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0);}\
    else\
    if(typeName=="Image3Dlinear<Vect3Df>"){fct< Image3Dlinear<Vect3Df> >(a0);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0);}\
    else\
    {ThrowError("CallWithImage3Dlinear_1 failed, type \"%s\" is not in template group \"Image3Dlinear\"",typeName);}
#define CallWithImage3Dlinear_2(fct,typeName,a0,a1)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<Vect3Df>"){fct< Image3Dlinear<Vect3Df> >(a0,a1);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1);}\
    else\
    {ThrowError("CallWithImage3Dlinear_2 failed, type \"%s\" is not in template group \"Image3Dlinear\"",typeName);}
#define CallWithImage3Dlinear_3(fct,typeName,a0,a1,a2)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<Vect3Df>"){fct< Image3Dlinear<Vect3Df> >(a0,a1,a2);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1,a2);}\
    else\
    {ThrowError("CallWithImage3Dlinear_3 failed, type \"%s\" is not in template group \"Image3Dlinear\"",typeName);}
#define CallWithImage3Dlinear_4(fct,typeName,a0,a1,a2,a3)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<Vect3Df>"){fct< Image3Dlinear<Vect3Df> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1,a2,a3);}\
    else\
    {ThrowError("CallWithImage3Dlinear_4 failed, type \"%s\" is not in template group \"Image3Dlinear\"",typeName);}
#define CallWithImage3Dreal0_0(fct,typeName)\
    if(typeName=="Image3Df"){fct< Image3Df >();}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >();}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >();}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >();}\
    else\
    {ThrowError("CallWithImage3Dreal0_0 failed, type \"%s\" is not in template group \"Image3Dreal0\"",typeName);}
#define CallWithImage3Dreal0_1(fct,typeName,a0)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0);}\
    else\
    {ThrowError("CallWithImage3Dreal0_1 failed, type \"%s\" is not in template group \"Image3Dreal0\"",typeName);}
#define CallWithImage3Dreal0_2(fct,typeName,a0,a1)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1);}\
    else\
    {ThrowError("CallWithImage3Dreal0_2 failed, type \"%s\" is not in template group \"Image3Dreal0\"",typeName);}
#define CallWithImage3Dreal0_3(fct,typeName,a0,a1,a2)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2);}\
    else\
    {ThrowError("CallWithImage3Dreal0_3 failed, type \"%s\" is not in template group \"Image3Dreal0\"",typeName);}
#define CallWithImage3Dreal0_4(fct,typeName,a0,a1,a2,a3)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2,a3);}\
    else\
    {ThrowError("CallWithImage3Dreal0_4 failed, type \"%s\" is not in template group \"Image3Dreal0\"",typeName);}
#define CallWithImage3Dreal_0(fct,typeName)\
    if(typeName=="Image3Df"){fct< Image3Df >();}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >();}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >();}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >();}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >();}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >();}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >();}\
    else\
    {ThrowError("CallWithImage3Dreal_0 failed, type \"%s\" is not in template group \"Image3Dreal\"",typeName);}
#define CallWithImage3Dreal_1(fct,typeName,a0)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0);}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >(a0);}\
    else\
    {ThrowError("CallWithImage3Dreal_1 failed, type \"%s\" is not in template group \"Image3Dreal\"",typeName);}
#define CallWithImage3Dreal_2(fct,typeName,a0,a1)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1);}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >(a0,a1);}\
    else\
    {ThrowError("CallWithImage3Dreal_2 failed, type \"%s\" is not in template group \"Image3Dreal\"",typeName);}
#define CallWithImage3Dreal_3(fct,typeName,a0,a1,a2)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1,a2);}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >(a0,a1,a2);}\
    else\
    {ThrowError("CallWithImage3Dreal_3 failed, type \"%s\" is not in template group \"Image3Dreal\"",typeName);}
#define CallWithImage3Dreal_4(fct,typeName,a0,a1,a2,a3)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="BitImage3D<byte,1,byte>"){fct< BitImage3D<byte,1,byte> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="BitImage3D<byte,2,byte>"){fct< BitImage3D<byte,2,byte> >(a0,a1,a2,a3);}\
    else\
    {ThrowError("CallWithImage3Dreal_4 failed, type \"%s\" is not in template group \"Image3Dreal\"",typeName);}
#define CallWithImage3Dreal1_0(fct,typeName)\
    if(typeName=="Image3Df"){fct< Image3Df >();}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >();}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >();}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >();}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >();}\
    else\
    {ThrowError("CallWithImage3Dreal1_0 failed, type \"%s\" is not in template group \"Image3Dreal1\"",typeName);}
#define CallWithImage3Dreal1_1(fct,typeName,a0)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0);}\
    else\
    {ThrowError("CallWithImage3Dreal1_1 failed, type \"%s\" is not in template group \"Image3Dreal1\"",typeName);}
#define CallWithImage3Dreal1_2(fct,typeName,a0,a1)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1);}\
    else\
    {ThrowError("CallWithImage3Dreal1_2 failed, type \"%s\" is not in template group \"Image3Dreal1\"",typeName);}
#define CallWithImage3Dreal1_3(fct,typeName,a0,a1,a2)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2);}\
    else\
    {ThrowError("CallWithImage3Dreal1_3 failed, type \"%s\" is not in template group \"Image3Dreal1\"",typeName);}
#define CallWithImage3Dreal1_4(fct,typeName,a0,a1,a2,a3)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2,a3);}\
    else\
    {ThrowError("CallWithImage3Dreal1_4 failed, type \"%s\" is not in template group \"Image3Dreal1\"",typeName);}
#define CallWithImage3Drealreal_0(fct,typeName)\
    if(typeName=="Image3Df"){fct< Image3Df >();}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >();}\
    else\
    {ThrowError("CallWithImage3Drealreal_0 failed, type \"%s\" is not in template group \"Image3Drealreal\"",typeName);}
#define CallWithImage3Drealreal_1(fct,typeName,a0)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0);}\
    else\
    {ThrowError("CallWithImage3Drealreal_1 failed, type \"%s\" is not in template group \"Image3Drealreal\"",typeName);}
#define CallWithImage3Drealreal_2(fct,typeName,a0,a1)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1);}\
    else\
    {ThrowError("CallWithImage3Drealreal_2 failed, type \"%s\" is not in template group \"Image3Drealreal\"",typeName);}
#define CallWithImage3Drealreal_3(fct,typeName,a0,a1,a2)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2);}\
    else\
    {ThrowError("CallWithImage3Drealreal_3 failed, type \"%s\" is not in template group \"Image3Drealreal\"",typeName);}
#define CallWithImage3Drealreal_4(fct,typeName,a0,a1,a2,a3)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2,a3);}\
    else\
    {ThrowError("CallWithImage3Drealreal_4 failed, type \"%s\" is not in template group \"Image3Drealreal\"",typeName);}
#define CallWithImage3Dreal2_0(fct,typeName)\
    if(typeName=="Image3Df"){fct< Image3Df >();}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >();}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >();}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >();}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >();}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >();}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >();}\
    else\
    {ThrowError("CallWithImage3Dreal2_0 failed, type \"%s\" is not in template group \"Image3Dreal2\"",typeName);}
#define CallWithImage3Dreal2_1(fct,typeName,a0)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0);}\
    else\
    {ThrowError("CallWithImage3Dreal2_1 failed, type \"%s\" is not in template group \"Image3Dreal2\"",typeName);}
#define CallWithImage3Dreal2_2(fct,typeName,a0,a1)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1);}\
    else\
    {ThrowError("CallWithImage3Dreal2_2 failed, type \"%s\" is not in template group \"Image3Dreal2\"",typeName);}
#define CallWithImage3Dreal2_3(fct,typeName,a0,a1,a2)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2);}\
    else\
    {ThrowError("CallWithImage3Dreal2_3 failed, type \"%s\" is not in template group \"Image3Dreal2\"",typeName);}
#define CallWithImage3Dreal2_4(fct,typeName,a0,a1,a2,a3)\
    if(typeName=="Image3Df"){fct< Image3Df >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dd"){fct< Image3Dd >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Mask3D"){fct< Mask3D >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<int>"){fct< Image3Dreal<int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dreal<short int>"){fct< Image3Dreal<short int> >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<double> >"){fct< Image3Dlinear<complex<double> > >(a0,a1,a2,a3);}\
    else\
    if(typeName=="Image3Dlinear<complex<float> >"){fct< Image3Dlinear<complex<float> > >(a0,a1,a2,a3);}\
    else\
    {ThrowError("CallWithImage3Dreal2_4 failed, type \"%s\" is not in template group \"Image3Dreal2\"",typeName);}
