[petsc-dev] [PATCH] Custom use of complex when not configured for complex
Jed Brown
jedbrown at mcs.anl.gov
Mon Sep 10 17:43:04 CDT 2012
ScalarComplex was just a typo that I noticed shortly after sending.
As for LogScalar versus ScalarLog, I can change it, but it's kind of
intrusive to users and I'm not convinced it matters.
On Sep 10, 2012 6:37 PM, "Barry Smith" <bsmith at mcs.anl.gov> wrote:
>
> Are these names correct?
>
>
> #define PetscPowScalarComplex(a,b) complexlib::pow(a,b)
> +#define PetscExpScalarComplex(a) complexlib::exp(a)
> +#define PetscLogScalarComplex(a) complexlib::log(a)
>
> Generally in PETSc when we have a function specific to a subclass (say
> GMRES subclass of KSP) we use for example KSPGMRESSetRestart() NOT
> KSPSetRestartGMRES().
>
> And why is there a Scalar AND a Complex in the name?
>
> Why not have
>
> PetscRealLog( PetscReal x, …
> PetscComplexLog( PetscComplex x,…
> PetscScalarLog( PetscScalar x,…. is always one
> of the two above depending on the PetscScalar type at ./configure time
>
> Barry
>
>
>
> On Sep 10, 2012, at 11:19 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
>
> > I would like to use complex arithmetic in some code that does polynomial
> optimization in the complex plane (for adaptive smoothers), even when
> PetscScalar is real. I'd like to push something like the attached, but
> since this is potentially fragile, I'm posting here before pushing. Any
> objections to my pushing?
> >
> > This works with my C and C++ real builds as well as C and C++ complex. I
> also tried a real build that disabled PETSC_HAVE_C99_COMPLEX (because all
> my compilers support it), but of course that's not much of a check.
> >
> > One thing that I think we could support (because C99 and C++ complex is
> binary compatible) is choosing the complex implementation based on the
> current language rather than PETSC_CLANGUAGE.
> > <complex.diff>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120910/750c33cd/attachment.html>
More information about the petsc-dev
mailing list