Glad you got things working.

The current stable release of
PDL is at version 2.4.11 and
has *many* bugs fixed and
some nice new features as well.

You might consider trying out the
latest if you get the chance.

--Chris

On Fri, Dec 21, 2012 at 1:45 PM, Erich Greene <[email protected]> wrote:
> Hi everyone,
>
> I haven't tried the C solution yet, but I have gotten everything to work in
> three different ways:
>
> 1) The standard solution, described by David Mertens:
>
>
> $PDL::undefval = double->badvalue;
> ...;
> my $pdl = pdl($ref);
> $pdl->badflag(1);
>
> 2) Chris Marshall's modification of the nan solution:
>
>
> $PDL::undefval = 'nan';
> ...;
> my $pdl = pdl($ref)->setnantobad->sever;
>
> 3) Not allowing the process to run multiple threads in parallel (threads as
> in "use theads", not as in PDL threading).
>
> I hadn't expected objects-crossing-threads issues, since piddles were only
> used in the threads they were created in, but in hindsight, maybe my
> original pdl(0)->setbadat(0) was optimized to a constant piddle at compile
> time?  If so, the executing threads were effectively using a "thread 0"
> object, with typically wacky results.  (Though that may not explain why the
> nan approach failed without the ->sever.)
>
> Thank you all for your time, effort, help, and thoughtful responses. Enjoy
> the holidays!
>
> -- Erich
>
> P.S.  My perldl -V output is:
>
> perlDL shell v1.354
>  PDL comes with ABSOLUTELY NO WARRANTY. For details, see the file
>  'COPYING' in the PDL distribution. This is free software and you
>  are welcome to redistribute it under certain conditions, see
>  the same file for details.
>
> Summary of my PDL configuration
>
> VERSION: PDL v2.4.9 (supports bad values)
>
> $%PDL::Config = {
>                   'BADVAL_PER_PDL' => '0',
>                   'WITH_PROJ' => '1',
>                   'FFTW_TYPE' => 'double',
>                   'FFTW_LIBS' => [
>                                    '/lib',
>                                    '/usr/lib',
>                                    '/usr/local/lib'
>                                  ],
>                   'WITH_FFTW' => '0',
>                   'GSL_LIBS' => undef,
>                   'WITH_IO_BROWSER' => '1',
>                   'PROJ_INC' => undef,
>                   'WHERE_PLPLOT_INCLUDE' => undef,
>                   'HTML_DOCS' => '1',
>                   'SKIP_KNOWN_PROBLEMS' => '0',
>                   'WHERE_PLPLOT_LIBS' => undef,
>                   'WITH_3D' => '0',
>                   'FFTW_INC' => [
>                                   '/usr/include/',
>                                   '/usr/local/include'
>                                 ],
>                   'WITH_POSIX_THREADS' => '1',
>                   'POGL_VERSION' => '0.63',
>                   'HIDE_TRYLINK' => '1',
>                   'WITH_HDF' => '1',
>                   'HDF_INC' => undef,
>                   'POGL_WINDOW_TYPE' => 'glut',
>                   'WITH_BADVAL' => '1',
>                   'WITH_GD' => '1',
>                   'FITS_LEGACY' => '1',
>                   'WITH_SLATEC' => '1',
>                   'BADVAL_USENAN' => '0',
>                   'WITH_DEVEL_REPL' => '1',
>                   'TEMPDIR' => '/tmp',
>                   'PROJ_LIBS' => undef,
>                   'USE_POGL' => '0',
>                   'GD_LIBS' => undef,
>                   'GSL_INC' => undef,
>                   'GD_INC' => undef,
>                   'WITH_GSL' => '1',
>                   'OPTIMIZE' => undef,
>                   'HDF_LIBS' => undef,
>                   'MALLOCDBG' => {},
>                   'WITH_MINUIT' => '1',
>                   'WITH_PLPLOT' => '0',
>                   'MINUIT_LIB' => undef
>                 };
> Summary of my perl5 (revision 5 version 14 subversion 3) configuration:
>
>   Platform:
>     osname=linux, osvers=2.6.32-279.14.1.el6.x86_64,
> archname=x86_64-linux-thread-multi
>     uname='linux buildvm-23.phx2.fedoraproject.org
> 2.6.32-279.14.1.el6.x86_64 #1 smp mon oct 15 13:44:51 edt 2012 x86_64 x86_64
> x86_64 gnulinux '
>     config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
> -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64
> -mtune=generic -Dccdlflags=-Wl,--enable-new-dtags -DDEBUGGING=-g
> -Dversion=5.14.3 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc
> -Dcf_by=Red Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr
> -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl5
> -Dsitearch=/usr/local/lib64/perl5 -Dprivlib=/usr/share/perl5
> -Dvendorlib=/usr/share/perl5/vendor_perl -Darchlib=/usr/lib64/perl5
> -Dvendorarch=/usr/lib64/perl5/vendor_perl
> -Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64
> /usr/lib64 -Duseshrplib -Dusethreads -Duseithreads
> -Dusedtrace=/usr/bin/dtrace -Duselargefiles -Dd_semctl_semun -Di_db -Ui_ndbm
> -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio
> -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less
> -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto
> -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto
> -Ud_setservent_r_proto -Dscriptdir=/usr/bin'
>     hint=recommended, useposix=true, d_sigaction=define
>     useithreads=define, usemultiplicity=define
>     useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
>     use64bitint=define, use64bitall=define, uselongdouble=undef
>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing
> -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64',
>     optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
> -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic',
>     cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
> -fstack-protector -I/usr/local/include'
>     ccversion='', gccversion='4.6.3 20120306 (Red Hat 4.6.3-2)',
> gccosandvers=''
>     intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>     ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
>     alignbytes=8, prototype=define
>   Linker and Libraries:
>     ld='gcc', ldflags =' -fstack-protector'
>     libpth=/usr/local/lib64 /lib64 /usr/lib64
>     libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
> -lgdbm_compat
>     perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
>     libc=, so=so, useshrplib=true, libperl=libperl.so
>     gnulibc_version='2.14.90'
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef,
> ccdlflags='-Wl,--enable-new-dtags -Wl,-rpath,/usr/lib64/perl5/CORE'
>     cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall
> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> --param=ssp-buffer-size=4 -m64 -mtune=generic'
> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>

_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to