Hi Ed, Ingo,

On Sat, Feb 20, 2021 at 01:39:51PM +0000, Ed . wrote:
> Hi Ingo,
> ...
> Is a free-standing asin(3) returning a complex number considered bad?
> I just did a quick check, and calling asin() on piddles with a real type, and 
> a complex type, each does the expected thing:
>
> pdl> $x = pdl(cdouble, 3)
>
> pdl> p asin($x)
> 1.5707963267948966+1.7627471740390861i
> pdl> $x = pdl(double, 3)
>
> pdl> p asin($x)
> NaN

I have no clear idea about what should be expected from asin(3), but
shouldn't it be the same as from asin(pdl(3))?

I like the idea that $a=cdouble(sequence(3)) or $a=sequence(cdouble,3)
generate a [3] 1D array of CDouble instead of a [2,3] 2D array of doubles
interpreted as complex. It will help simplify my programs using complex
numbers. However, I don't know how to set a non-zero
imaginary part. I trield the constant i, but it is not defined. I
loaded the PDL::Complex module, but it contains the old style complex
numbers, where i is a PDL::Complex:

    pdl> $ii=i
    pdl> p $ii->info
    PDL::Complex: Double D [2]

I also don't know how to take the real and imaginary parts of a new
style complex (the old 're' and 'im' don't work) or how to convert
from a complex to an array of reals (the old 'real' doesn't work
either). Is there some documentation already? (I haven't looked at the
new code  yet).

Best regards,
Luis




>
> With regards to PP, I have in mind to go in and make it use more C macros 
> (for shorter XS code which should help the compiler), and to fix up the #line 
> stuff better for easier debugging and to help get the test-coverage reporting 
> right, which it isn’t entirely at the moment. If you can tell me more about 
> the issues with implicit casts, I can look at that while there!
>
> Best regards,
> Ed
>
> From: Ingo Schmid<mailto:ingo...@gmx.at>
> Sent: 20 February 2021 13:21
> To: pdl-de...@lists.sourceforge.net<mailto:pdl-de...@lists.sourceforge.net>; 
> pdl-general@lists.sourceforge.net<mailto:pdl-general@lists.sourceforge.net>
> Subject: Re: [Pdl-devel] PDL 2.026_01 released to CPAN
>
>
> Hi Ed,
>
> thanks for picking this up! I am really really bad at housekeeping and with 
> multi-developer git, I'm sorry for the mess I've left you to deal with. When 
> I saw you released the new version, I was actually considering giving it a 
> push. Now I am really grateful you beat me to it ! ;)
>
> There was still the issue of build failure on windows with bad values and 
> either use NaNs as bad on or off. Have you managed to root that out? I've run 
> out of steam on this. It was really just one combination that caused the 
> failure.
>
> With regard to expected behaviour, that is difficult really, as there often 
> is no general answer. I guess I would advise to be conservative so that 
> existing real-valued code behaves as much the same way as it ever did. I 
> figure that this  is probably quite difficult to do rigorously.
>
> As some veteran developers for sure know is that there is an implicit 
> promotion of types to double, which is still in place. I think it is 
> somewhere hidden in PP, I think. Other parts of the code implicitly or 
> explicitly rely on this, if I remember correctly. That leads to the odd cases 
> when a function is not defined for complex numbers, the argument is cast to 
> double (which is the real part) and then silently used in the function.
>
> To the point, the desired behaviour of implicit casts is now even more 
> relevant and has become non-trivial then it used to be so far. Anyone 
> remembering the 64-bit integer to double loss of precision discussion?
>
> Best
>
> Ingo
> On 2/20/2021 2:20 AM, Ed . wrote:
> For sqrt with real numbers, there's already multiple possible answers! So 
> this is not adding any additional problems.
>
> For log, it’s probably most pragmatic to have an additional function, which 
> already exists in PDL::Complex. Question: does this new “native” complex 
> support mean PDL::Complex should change / be simplified? Also, are you saying 
> that you consider the behaviour of promoting floats/doubles into their 
> complex counterparts is wrong?
>
> Best regards,
> Ed
>
> From: Luis Mochan<mailto:moc...@icf.unam.mx>
> Sent: 20 February 2021 01:08
> To: pdl-de...@lists.sourceforge.net<mailto:pdl-de...@lists.sourceforge.net>; 
> perldl<mailto:pdl-general@lists.sourceforge.net>
> Subject: Re: [Pdl-devel] PDL 2.026_01 released to CPAN
>
>
> Hi Ed,
>
> I'm not sure about what should be expected for operations on real
> numbers that have no real answer: a complex answer or an error? (In the
> case of sqrt(-1) or worse, for log(-1) there is the further problem of
> multiple possible answers.)
>
> Consider
>
> pdl> $i=sequence(long,10);
>
> pdl> p $i/3
> [0 0 0 1 1 1 2 2 2 3]
>
> pdl>
>
> In this case, division is not promoting longs into floats. However
> asin(3) does promote floats into complex. sqrt(-1) isn't. So I'm still
> confused about what are the appropriate expectations. I'd follow your
> suggestion if I were sure what to request.
>
> Regards,
> Luis
>
>
> On Sat, Feb 20, 2021 at 12:52:58AM +0000, Ed . wrote:
> > > Is this the expected behavior?
> >
> > I’d have to say yes – the changes made by Ingo are to use <complex.h>’s 
> > native-ish C complex-numbers support, and PDL types and code changes to 
> > support that. The change to asin’s behaviour came for free with that. It’s 
> > not yet fully pervasive, and I’m not 100% sure whether the new complex 
> > behaviour should actually change to be opt-in.
> >
> > On the other hand, making it do the mathematically correct thing all the 
> > way seems like the correct way forward! If people can try their various 
> > scripts and extensions and see if anything breaks, and/or find things that 
> > are not according to their expectations, it would be really helpful to 
> > report that on here. Luis, could you open an issue on the repo and capture 
> > at least this sqrt point? (A PR to add a failing test would be even better, 
> > and a PR with a failing test plus code to fix the problem would be better 
> > again 😊)
> >
> > Best regards,
> > Ed
> >
> > From: Luis Mochan<mailto:moc...@icf.unam.mx>
> > Sent: 20 February 2021 00:09
> > To: 
> > pdl-de...@lists.sourceforge.net<mailto:pdl-de...@lists.sourceforge.net><mailto:pdl-de...@lists.sourceforge.net><mailto:pdl-de...@lists.sourceforge.net>;
> >  perldl<mailto:pdl-general@lists.sourceforge.net>
> > Subject: Re: [Pdl-devel] PDL 2.026_01 released to CPAN
> >
> > I installed it 026_01 (from github/master)
> >
> >
> > pdl> p asin(3)
> > 1.5707963267948966+1.7627471740390861i
> >
> > pdl> p sin(asin(3))
> > 3.0000000000000004+1.7319121124709863e-16i
> >
> > Seems good, but
> >
> > pdl> p sqrt(-1)
> > Runtime error: Can't take sqrt of -1 at (eval 400) line 5.
> >
> > pdl> use PDL::Complex
> >
> > pdl> p sqrt(-1)
> > Runtime error: Can't take sqrt of -1 at (eval 416) line 5.
> >
> > pdl> p sqrt(-1+0*i)
> > 0 +1i
> >
> > pdl>
> >
> > Is this the expected behavior?
> >
> > Regards,
> > Luis
> >
> >
> >
> > On Fri, Feb 19, 2021 at 05:52:44PM -0600, Luis Mochan wrote:
> > > This is good news!
> > > Thanks!
> > > Luis
> > >
> > > On Fri, Feb 19, 2021 at 08:15:59PM +0000, Ed . wrote:
> > > > Dear PDL users,
> > > >
> > > > I’ve just uploaded PDL 2.026_01 to CPAN. It has Ingo Schmid’s “native 
> > > > complex types” code (as tidied up a bit). Please give it a go and 
> > > > report whether it works! Please note that now e.g. asin(3) will not 
> > > > return NaN, but instead a complex number (which is, of course, 
> > > > mathematically valid).
> > > >
> > > > As Derek said, please report any issues you find to the mailing list 
> > > > (good), or create an issue (better) or a pull request (best!) on 
> > > > GitHub.  Thanks, and Happy PDL-ing!
> > > >
> > > > Best regards,
> > > > Ed
> > >
> > >
> > > > _______________________________________________
> > > > pdl-devel mailing list
> > > > pdl-de...@lists.sourceforge.net<mailto:pdl-de...@lists.sourceforge.net>
> > > > https://lists.sourceforge.net/lists/listinfo/pdl-devel
> > >
> > >
> > > --
> > >
> > >                                                                   o
> > > W. Luis Mochán,                      | tel:(52)(777)329-1734     /<(*)
> > > Instituto de Ciencias Físicas, UNAM  | fax:(52)(777)317-5388     `>/   /\
> > > Av. Universidad s/n CP 62210         |                           (*)/\/  \
> > > Cuernavaca, Morelos, México          | 
> > > moc...@fis.unam.mx<mailto:moc...@fis.unam.mx>   /\_/\__/
> > > GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16  C2DF 5F0A C52B 791E B9EB
> > >
> > >
> > > _______________________________________________
> > > pdl-devel mailing list
> > > pdl-de...@lists.sourceforge.net<mailto:pdl-de...@lists.sourceforge.net>
> > > https://lists.sourceforge.net/lists/listinfo/pdl-devel
> >
> > --
> >
> >                                                                   o
> > W. Luis Mochán,                      | tel:(52)(777)329-1734     /<(*)
> > Instituto de Ciencias Físicas, UNAM  | fax:(52)(777)317-5388     `>/   /\
> > Av. Universidad s/n CP 62210         |                           (*)/\/  \
> > Cuernavaca, Morelos, México          | 
> > moc...@fis.unam.mx<mailto:moc...@fis.unam.mx>   /\_/\__/
> > GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16  C2DF 5F0A C52B 791E B9EB
> >
> >
> > _______________________________________________
> > pdl-devel mailing list
> > pdl-de...@lists.sourceforge.net<mailto:pdl-de...@lists.sourceforge.net>
> > https://lists.sourceforge.net/lists/listinfo/pdl-devel
> >
>
> --
>
>                                                                   o
> W. Luis Mochán,                      | tel:(52)(777)329-1734     /<(*)
> Instituto de Ciencias Físicas, UNAM  | fax:(52)(777)317-5388     `>/   /\
> Av. Universidad s/n CP 62210         |                           (*)/\/  \
> Cuernavaca, Morelos, México          | 
> moc...@fis.unam.mx<mailto:moc...@fis.unam.mx>   /\_/\__/
> GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16  C2DF 5F0A C52B 791E B9EB
>
>
> _______________________________________________
> pdl-devel mailing list
> pdl-de...@lists.sourceforge.net<mailto:pdl-de...@lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/pdl-devel
>
>
>
>
>
> _______________________________________________
>
> pdl-devel mailing list
>
> pdl-de...@lists.sourceforge.net<mailto:pdl-de...@lists.sourceforge.net>
>
> https://lists.sourceforge.net/lists/listinfo/pdl-devel
>


> _______________________________________________
> pdl-devel mailing list
> pdl-de...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pdl-devel


--

                                                                  o
W. Luis Mochán,                      | tel:(52)(777)329-1734     /<(*)
Instituto de Ciencias Físicas, UNAM  | fax:(52)(777)317-5388     `>/   /\
Av. Universidad s/n CP 62210         |                           (*)/\/  \
Cuernavaca, Morelos, México          | moc...@fis.unam.mx   /\_/\__/
GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16  C2DF 5F0A C52B 791E B9EB


_______________________________________________
pdl-general mailing list
pdl-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-general

Reply via email to