I don’t have much help to offer for the complex stuff currently, only a couple 
of thoughts. Looking at the diffs between your branch and master, I see you’re 
doing lots of interesting things, together with a couple I don’t understand:


  *   There’s no reason for you to change version numbers, let the releasing 
person worry about that :-)
  *   Changing indentation creates diffs for no reason and means reviewing 
takes longer
  *   I see you have made copies of Core.pm.PL with -master and -multielement 
on the name; since you have git, why not just put those changes either on a 
different branch, or just in comments in your copy of Core.pm? Or at the very 
least, don’t add them to git :-)
  *   You say you’re trying to use PMCode to make things work; at 
https://github.com/PDLPorters/pdl/compare/master...fantasma13:nat_complex#diff-621e73c99459a6921891a9de81d5818aR379
 I see you have what may be a typo and it says “PMCod”, that may be connected? 
(PP really should complain about unknown options, that’s a bug I think)
  *   I don’t think adding “-lstdc++” is going to be very portable, there’s 
probably a better way?
  *   Your perldl.conf has turned off WITH_BADVAL?

It’s a pity that PDL types aren’t implemented as plugins that get assembled 
into the full PDL implementation. I see it’s necessary to have pdlcore.c know 
about this one, which means it wouldn’t be possible to add “complex native” at 
runtime, but it would at least make managing PDL easier.

It’s also a pity that you’ve had to add the “GenericTypes=>BSULNFD” to so many 
.pd files, it seems like there should be a better way.

I think docs are often an interesting way to start on writing code, in order to 
help understand the code one will write. However, I think if you understand 
this change well, there’s no problem leaving that till last! However, I do 
think that writing tests is incredibly critical, and makes your own life a lot 
easier (as I mentioned in a previous email).

As a drive-by observation, I believe that a lot of PDL modules operate in a way 
that looks a lot like “roles”, in that they add functionality to central PDL. I 
don’t have any specific thoughts that lead from this yet.

Best regards,
Ed

Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10

________________________________
From: ingo...@gmx.at <ingo...@gmx.at>
Sent: Sunday, April 21, 2019 9:00:36 AM
To: pdl-devel; Ed .
Subject: Re: [Pdl-devel] pdl complex support

Ed,
great, that split helps development, I'm sure.

basic complex number support seems to work. Currently, I face two issues:
 print does not do what i want. it seems to ignore my format.
the other is abs. i need to set output type based on input type,  i want to 
cast complex double to double, while the rest keep there input type. i tried 
pmcode to make the cast, but that is ignored, apparently. I'm doing something 
wrong, apparently.

nothing is documented yet in changes. but feel free to check out. ci returns a 
complex piddle 0+1i. creal, cimag,  carg do what you expect, most basic math 
should as well. to display, use print on creal/cimag.
tests are missing
Best wishes
Ingo

Sent from MailDroid<https://goo.gl/ODgwBb>

-----Original Message-----
From: "Ed ." <ej...@hotmail.com>
To: Ingo Schmid <ingo...@gmx.at>, pdl-devel <pdl-devel@lists.sourceforge.net>
Sent: Sun, 21 Apr 2019 8:24
Subject: Re: [Pdl-devel] pdl complex support

Hi PDL Porters,

As I’m just going to announce on pdl-general, I would say PDLA is ready to 
develop (and run experiments) against. It’s up to date with legacy PDL master, 
on v2.019101 for both PDLA::Core and PDLA::Rest. There is an experimental 
single module that has been carved off from the mass – PDLA::IO::HDF. It’s also 
been brought up to date.

Feel free to fork and have a play with either or both of 
https://github.com/PDLPorters/pdla-core and 
https://github.com/PDLPorters/pdla-rest !

Next steps:
* stop -rest using %PDLA::Config to decide on building stuff or not
* make the -rest CI test everything, at least on Linux (I may need help for 
Windows)
* make all the .pd files instead be Inline::Pdlapp .pm files, installable using 
Inline::Module, for PDLA::IO::HDF first, then ::Core (I already have a branch 
that this works on)
* put the demos together with what they’re demo-ing, installed as PDLA::Demos::*
* make the command shells search for PDLA::Demos::* when asked for what demos 
are available

Somewhere in there, I’ll be making a “repro” tool, which will help in 
publishing easily-reproducible scientific experiments; it will capture OS + 
version, scripting language + version, modules + versions, actions (possibly 
from URLs), and expected outputs.

Ingo, I’d like to see what you come up with for this complex numbers processing 
idea!

Best regards,
Ed

From: Ed .<mailto:ej...@hotmail.com>
Sent: Tuesday, April 16, 2019 5:37 PM
To: Ingo Schmid<mailto:ingo...@gmx.at> ; 
pdl-devel<mailto:pdl-devel@lists.sourceforge.net>
Subject: Re: [Pdl-devel] pdl complex support

Hi Ingo,

> I and my group use it daily for scientific use in medical imaging

Great to know.

Yes, you won’t be able to update the main pdl repo yourself. A fork is the 
“normal” way to go about this. This looks like the branch you’re working on? 
https://github.com/PDLPorters/pdl/compare/master...fantasma13:nat_complex

You’re quite right that PDLA isn’t quite ready to work off, but watch this 
space because that’s imminent.

To use your local, non-installed copy there are two ways forward. One is just 
to use it in blib:

make
perl -Mblib myscript.pl # or perl –Mblib pdl2

An alternative model is just test-driven development; make a t/complexnatives.t 
file, put in there stuff you expect to work, then run it like this:

make && prove -b t/complexnatives.t

I use the second one myself, since you then have something that will 
permanently constrain the code to work the way you specify in the tests.

Best regards,
Ed

From: Ingo Schmid<mailto:ingo...@gmx.at>
Sent: Tuesday, April 16, 2019 4:56 PM
To: pdl-devel<mailto:pdl-devel@lists.sourceforge.net>
Subject: [Pdl-devel] pdl complex support



Hi,

I'm glad to hear PDL isn't dead, it's been very quiet on the lists. I and my 
group use it daily for scientific use in medical imaging.

I have started work on native c-level complex numbers support.

I tried to push to github, but I got this error:

fatal: unable to access 'https://github.com/PDLPorters/pdl/': The requested URL 
returned error: 403

So I had to create this fork:

https://github.com/fantasma13/pdl.git

I guess this is to be expected.

It's still very much work in progress. I just managed to pass all tests. Bad 
value support is not implemented yet, that horribly failed. I have no idea if 
you can actually create a piddle yet. ;)

Essentially I created a new entry in Types.pm.PL with c type complex double and 
included complex.h. The rest was weeding through errors and extensive use of 
GenericTypes in pp_def

I am really missing proper complex number support.

Let's see where we can get that. It's based on 2.019 PDL, I looked to base on 
PDLA but since it was behind the main PDL tree I chose against.

Now I would really like to use and test the freshly made PDL from the build 
directory without having to make install it. in particular the pdl2 shell. Does 
anyone know how to do that? So far I failed.

Best wishes

Ingo





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

________________________________

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

Reply via email to