std::complex instantiation

Barry Smith bsmith at mcs.anl.gov
Mon Sep 8 13:40:24 CDT 2008


    This may be a correct change, but currently the only support for  
complex in PETSc is for
double complex. Likely many changes are needed (like with Blas/Lapack)  
to support single complex
or quad complex.

    Barry


On Sep 8, 2008, at 1:26 PM, Lisandro Dalcin wrote:

> In 'src/sys/objects/init.c', we have
>
> #if defined(PETSC_COMPLEX_INSTANTIATE)
> template <> class std::complex<double>; /* instantiate complex  
> template class */
> #endif
>
> Is this right? I believe it should be (regarding 'include/ 
> petscmath.h')
>
> template <> class std::complex<PetscReal>;
>
> or perhaps better:
>
> #if defined(PETSC_USE_SINGLE)
> template <> class std::complex<float>;
> #elif defined(PETSC_USE_LONG_DOUBLE)
> template <> class std::complex<long double>;
> #elif defined(PETSC_USE_INT)
> template <> class std::complex<int>;
> #else
> template <> class std::complex<double>;
> #endif
>
>
> -- 
> Lisandro Dalcín
> ---------------
> Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> Tel/Fax: +54-(0)342-451.1594
>




More information about the petsc-dev mailing list