-
Notifications
You must be signed in to change notification settings - Fork 46
/
Changes
3889 lines (2659 loc) · 127 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
- CallExt removed - use `Inline with => "PDL"; use Inline C => "..."`
- Inline::MakePdlppInstallable removed - use Inline::Module
- PDL::PP::Dump removed - set $::PP_VERBOSE in .pd instead
- add IO::Misc::bswap{16,32}
- IO::Misc::bswap* now give error if try to swap more bytes than type-size
- the distro VERSION now comes from PDL::Core
- PDL::GSL now requires GSL >= 2.0
- PDL::GSLSF::* now merged into PDL::GSL::SF
- incorporate PDL::Stats::Distr into PDL::GSL since needs GSL
- Ufunc::{csumover,cprodover,ccumusumover,ccumuprodover} removed
2.095 2024-11-03
- add PDL_GENTYPE_IS_{REAL,FLOATREAL,COMPLEX,SIGNED,UNSIGNED}_##ppsym (#502)
- fix some architectures convert()ing -5 to ushort as 0 (#502) - thanks @sebastic for report
2.094 2024-11-02
- split Graphics/IIS out to separate PDL::Graphics::IIS distro
- split Libtmp/Minuit out to separate PDL::Minuit distro
- Transform::Proj4 now thread-safe
- Transform::Proj4 use Alien::proj better for build (#499) - thanks @shawnlaffan
- perldl/pdl2 now have "x" command that Data::Dumper-s argument
- Transform::Proj4 objects have correct units
- add demo for Transform::Proj4
- fix Transform::Proj4 tests and build (#498 #499) - thanks @shawnlaffan
- t_linear stores iunit ounit itype otype
- IO::FITS no longer writes COMMENT header with "HASH(0x...)"
- add IO::GD::write_gif_anim for better GIF animation in Demos/harness
- IO::HDF remove VNAMELENMAX and Vinquire as obsoleted by recent HDF4 (#500) - thanks @a-shahba for report
- IO::FlexRaw::mapflex stop allocating memory (#501) - thanks @vitstradal for report
- add Primitive::approx_artol
- get_dataref now works even with DONTTOUCHDATA which is really about allocation
- if $pdl->{PDL} is code ref, $pdl now passed as arg
- add PDL::Hash to simplify hash-based PDL subclasses
- now an error to pass any undefined values to PDL constructors
- replace CallCopy mechanism with initialize called also as instance method
- drop WITH_HDF, WITH_GD, WITH_DEVEL_REPL config; just try building
- removed PDL::Config mechanism, leave vestigial file for back-compat and use env vars for libs/incs
- incorporate PDL::Parallel::threads
- Ufunc::firstnonzeroover added - thanks @guillepo for inspiration
- incorporate Test::PDL
2.093 2024-09-29
- PDL.set_datatype now doesn't physicalise input, PDL.convert_type does
- new_around_datasv now sets nbytes and ALLOCATED
- [xyz]{lin,log}vals now works with dim-length of one
- minmax skips NaNs entirely, so now works with leading NaN
- add Transform::Cartography::clean_lines options: orange, filter_nan
- Transform::Proj4 captures projection information at build not runtime
- move Stats::diff to Ufunc::diffover
- remove t_raster2float and t_raster2fits, add raster2fits
- IO::GD add OO to_rpic for ndarrays (3,x,y) if truecolour, y=0 at bottom, like rpic
- IO::GD stop read_true_png segfaulting with non-true PNG
- IO::Pic use IO::GD for JPEG if available, helps Windows with no NetPBM
- Primitive::matmult handle bad values, treating like NaN
2.092 2024-09-07
- add Type::howbig
- restore ABI (https://github.com/moocow-the-bovine/PDL-VectorValued/issues/10 https://github.com/PDLPorters/PDL-Stats/issues/33) - thanks @sebastic for report
2.091 2024-09-06
- disable/replace PDL_Anyval-returning API functions as clang 3.4.1 corrupts
- fix badvalue propagated to different-typed child breaking them
- merge GIS::Proj into Transform::Proj4
- allow set_donttouchdata with no nbytes param
- add datasv_refcount method
- core support for PDL::Parallel::threads
- add tricpy, mstack, augment, t
2.090 2024-08-23
- remove PDL_DATAFLOW_B entirely as meaningless (#485)
- now an error to output to ndarray with inward but no backward dataflow (#485)
- now slices etc with dataflow turn off backward dataflow if any input has inward-only dataflow (#485)
- add GSL::RNG::ran_shuffle_1d
- add IO::Pic support for XBM
- fix typemaps for future Perl versions (#487) - thanks @HaraldJoerg
- $PDL::infoformat now default for info method (#491) - thanks @jo-37
- move PDL::Graphics::LUT to PGPLOT distro
- add GSL::RNG bindings for most _pdf functions
- add demo of GSL::RNG
- fix MatrixOps::eigens for asymmetric case inc complex eigenvectors
- fix GSL problem on Windows (#493) - thanks @shawnlaffan for report
- wfits fixed to handle multi HISTORY (#488, #489) - thanks @d-lamb for report
2.089_02 2024-06-26
- PDL::VectorValued::vcos into Primitive - thanks @moocow-the-bovine
- remove PDL_TRACEDEBUG functionality
- fix non-Perl created ndarray getting destroyed after Perl visibility (#484)
- fix ones-optimisation problem in useithreads Perls which broke PDL::Parallel::threads
- add Ufunc::magnover (https://github.com/nrdvana/perl-Math-3Space/pull/8)
- Ops::abs2 now PP op that doesn't first calculate sqrt for complex
- replace doflow,set_dataflow_f with one-shot-each-time flowing (#485)
2.089_01 2024-06-05
- add demo of GSL::CDF
- floating-point-only operations in Ops, Primitive, Bad now default to double, not cldouble
- fix treating a large Perl UV as an IV so getting sign wrong (#469)
- remove obsolete $PP()
- pptest.t now uses build dir to avoid noexec mount problems
- on pdl_destroy, the sv member IV is set to 0 not a random number - thanks @fantasma13 for report
- rename Primitive::srand to srandom to avoid clash with Perl (#472)
2.089 2024-05-12
- fix numerical misbehaviour in histogram etc on i686 (#474) - thanks @sebastic for report
- add ANYVAL_FROM_SV parameter to control "undefval" warning
- move contour_segments from Graphics::TriD::Rout to ImageND
- add TriD::line3d_segs
- add Slices::meshgrid
- add ImageND::{path_{join,segs},contour_polylines}
2.088 2024-04-22
- Slatec::ch{ic,sp} work arrays now [t]
- add Slatec::bvalu
- add Func::{pchip,spline}, and a demo
- add Ufunc::diff2
- extra ) on end of Pars now an error
- PP dim sizes can be =CALC(...) instead of explicit RedoDimsCode
- PP add loop(n=start:end:inc) idiom to stop not at end and have non-1 inc
- updated README.md - thanks @falsifian
- support T_PTROBJ in typemap
2.087 2024-04-05
- Slatec PCHIP routines now have idiomatic [io] `skip` Pars, with doc fixed to match SLATEC code (#468)
- Slatec ezfft* routines take IFAC to avoid treating part of float array as integer (#468)
- add has_badvalue method for whether ndarray has per-pdl badvalue (#469)
- fix Slatec breaking PDL::Stats (https://github.com/PDLPorters/PDL-Stats/issues/31) - thanks @sebastic for report
- fix long-standing mistyping of large negative IVs on 32-bit (#469) - thanks @sebastic for report
- can now set badvalues that are Math::Complex objects (#469)
2.086 2024-03-31
- fix 64-bit problem in Minuit revealed by LTO (#468) - thanks @eli-schwartz for report
- add pdl.ntrans_children to speed up destroying ndarrays (#421,#451)
- PDL PGPLOT support has been moved to the PGPLOT CPAN distribution
2.085_02 2024-03-25
- PP add loop(n=value) idiom to start not at 0
- add whichover, inspired by https://stackoverflow.com/questions/77551179/perl-pdl-indexing-and-which
- random/randsym only produce real data
- fix dataflow when vaffine ndarray is between modified and downstream (#461) - thanks @vadim-160102 for continued reporting
- revert the use of ArgOrder for PDL::Ops so op($a,$b,$c,$swap) works again as pre 2.082_01
- error on inflating output ndarrays over dims sized 1 or implicit (promoted) or dummy, as is undefined behaviour
- make HdrCode and FtrCode run when PMCode supplied (#463) - thanks @jo-37 for suggestion
- PP add CHeader key
- OtherPars can now be incomplete arrays of char*
- make typemaps able to use more Perl ones like T_HVREF - thanks @jo-37
- removed threadover_n alias since not used elsewhere and broadcastover{,_n} interface adjusted to move mandatory to start
- add ccumu{prod,sum}over in complex double precision
- setdims on ndarray with trans_parent (i.e. flowing) now an error
- set(..., $multi_elt) now an error (#466) - thank @djerius for report
- convert can work inplace (by using set_datatype)
- flowing convert of ndarrays preserves badvalues that are NaN
- PDL_ISBAD2 macro
- lvalue {un,}broadcast
- set_datatype now errors if has trans_children, as trans-es have a datatype
- add ANYVAL_TO_ANYVAL_NEWTYPE
- per-ndarray badvalues (which are PDL_Anyval) now constrained to be same type as ndarray
2.085_01 2024-02-10
- test, document PDL::string, make more consistent (#459) - thanks @vadim-160102 for report
- fix pre-2002 rangeb bug (#457) - thanks @jo-37 for report
- add datachgd method
- add MatrixOps::tritosquare
- add gv command to shells
- add PDL::Trans::VTable
- Math::polyroots now handles native-complex
- add Math::poly{val,fromroots}
- fix DATACHANGED propagation (#461) - thanks Karl Glazebrook and @vadim-160102 for report
2.085 2024-01-30
- switch FFT code to use heap, not VLA (#436) - thanks @HaraldJoerg for report
- add methods PDL::Trans::{address,name,flags,flags_vtable,vaffine,offs,incs,ind_sizes,inc_sizes}
- add PDL::Core::pdump{,_trans,graph}
- xvals etc now return at least a double BY DEFAULT, but respect given type (#330) - thank @djerius for report
- fix segv if vsearch $x arg is empty (#454) - thanks @djerius
- IO::HDF fix for HDF4 4.2.16 (#439) - thanks @sebastic
- fix GIS::Proj to work better on Windows (#456) - thanks @shawnlaffan
- fix conversion of ulonglong to Perl scalar and therefore stringification (#458) - thanks @vadim-160102 for report
- fix modulo for ulonglong and on Windows
- update Opt::Simplex docs (#452) - thanks @KJ7LNW
- fix Graphics::OpenGLQ on MacOS Ventura (#452) - thanks @deriamis
- fix IO::Storable warning on empty (#448) - thanks @djerius for report
- fix non-broadcast, non-matching size-1 dims on output being silently accepted (#445) - thanks @djerius for report
2.084 2023-05-21
- reduce size of PDL_KLUDGE_COPY_X macro to <4096 in line with C standard, to fix for older clang on many BSD
2.083 2023-04-30
- no changes from 2.082_01
2.082_01 2023-04-27
- fix some memory leaking - thanks Yury Pakhomov for report
- fix random() failing (#422) - thanks @falsifian for report
- PP Inplace now checks inputs and outputs are dimensionally compatible (#416)
- no more HTML doc generation
- PDL::Doc::add_module now adds all submodules of given namespace (#420)
- [o] OtherPars can now be omitted from args like [o] ndarrays
- OtherPars can now be incomplete arrays of pdl* (#421)
- add [io] OtherPars
- add ArgOrder PP key
- [nc] removed as Pars type-specifier, use [io]
- fix pdl2 bug with demos (#424) - thanks @HaraldJoerg for report
- fix PP bug revealed by https://github.com/moocow-the-bovine/PDL-HMM/pull/4
- operations with only output ndarrays can now not be Inplace
- overloaded ops require proper overload-handling; PDL::Complex now does
- for more idiomatic XS code, PDL C function interface now pdl_run_(name)
- add FtrCode in XS, to match HdrCode
- add sound demo - thanks @HaraldJoerg
- OtherPars can now be $argname, for XS processing only and not in operation
- fix broadcasting over empty ndarray (#429) - thanks @falsifian for tests
- fix appending with empty ndarray (#430) - thanks @falsifian for tests
- fix whereND with all-zero mask or empty input (#428) - thanks @falsifian for tests
- inplace operations no longer copy input arg if inplace
2.082 2023-03-22
- no changes from 2.081_03
2.081_03 2023-03-20
- allow OtherPars to set index-size of not-otherwise-used index
- fix nested loop() bug for Pars with e.g. (n,n)
2.081_02 2023-03-14
- add pp_add_typemaps
2.081_01 2023-02-27
- drop erroneous Test::Deep dependency
- fix `(my $tmp = $pa->inplace) += 1`
- fix [o] OtherPars to work if PMCode
- fix MatrixOps::det returning Perl 0 for some singular - thanks @wlmb for report
- fix intersect bug (#419) - thanks @jo-37 for report
2.081 2022-10-25
- no changes from 2.080_02
2.080_02 2022-10-22
- fix t/matrix.t over-sensitive comparison test for uselongdouble
2.080_01 2022-10-21
- fix longstanding t_rot bug shown in https://perlmonks.org/?node_id=683514
- add inflateN
- fix MatrixOps::inv failing on native-complex (#403) - thanks @KJ7LNW for report
- fix MatrixOps::identity losing class of invocant if ndarray (#401) - thanks @pryrt for report
- change PP-generated XS PROTOTYPES to DISABLE
- allow [o] on OtherPars (#362)
- fix conv2d to allow complex arguments (#407) - thanks @wlmb
- Add complex support to interpolate (#408) - thanks @KJ7LNW
- Refactor PDL::IO::Browser curses detection to additionally use ncurses*-config (#412)
- Add File::Which as a configure dependency (previously runtime only) (#412)
2.080 2022-05-28
- make IO::STL work on big-endian systems (#394) - thanks @sebastic for report
- pp_add_macros macros now receive list of args split like C preprocessor
- most of PDL::VectorValued into Primitive/Slices - thanks @moocow-the-bovine
- depend on Text::Balanced 2.05, removing monkeypatch (#396)
- make {w,}histogram throw error not segfault when min == max (#397) - thanks @fantasma13 for report
2.079 2022-05-03
- move Math::badmask to Bad
- PDL.propagate_badflag propagates both to parents AND children, sets flag itself
- Ops::assgn now propagates its badflag without needing to set output badflag
- remove FindBadStatusCode
- remove redundant use of CopyBadStatusCode
- PDL.null deprecated, doesn't allocate pdl.sv now
- PDL::Dataflow doc updated
- add TriD::trigrid3d
- add PDL::IO::STL
- replace *_RECURSE_GUARD macros which use process-global variable, causing problems if multi-thread, with stack parameters - thanks @marioroy for report
- add Primitive::{cmp,eq}vec
- add Image2D::crop
- PP typemap-search includes dirs above
2.078 2022-04-10
- Ops::atan2 etc have default swap param
- fix Transform::Cartography::t_carree spelling (compat alias created)
- add Transform::Cartography::t_raster2{fits,float}
- Transform::inverse on transform without an inverse now fatal error
- fix Transform::t_fits bug which ignored ignore_rgb for making inverse
- TriD::GL now more resilient and exceptions don't leave GL broken
- add Transform::Cartography::earth_shape
- back-port Text::Balanced fixes to improve NiceSlice (#383)
- fix long-standing "harmful" scaling of output with dim 1 (#392)
- fix segfault bug for Ufunc::{odd,}{pct,med}over with empty - thanks @nerdstrike for report
- struct pdl add "value" field for data that fits there, avoiding separate memory-management (#358)
- copy over the sensible method-name aliases for PDL::Complex from PDL::LinearAlgebra
2.077 2022-03-16
- Ufunc::{min,max}over{,_ind} behaviour for NaNs fixed to match docs
- Ufunc::{min,max}over_n_ind can handle badvals
- single badval as boolean is now an error (#388)
- IO::FlexRaw::readflex can take last dim as undef (#322)
- add IO::(Fast|Flex)Raw::glue\L\1 (#322)
- PDL::Demos::Routines replaced with PDL::Demos, update demos (#42)
- switch pdl_destroy to use mg_free not SvOBJECT_off, needed by Perl ithreads (#385)
- implement Ctrl-C handling in perldl (#269)
- add with_time command to shells
- fix shell history getting lost if OpenGL loaded before listed (#337)
- fix TriD objects being off-centre (#337)
- fix Primitive::which_both docs to match behaviour
- add Primitive::where_both
- PP now checks data pointers for NULL if nvals > 0 except in RedoDimsCode
- add Core::dup{,N}
2.076 2022-02-25
- fix long-standing bug in dice that broke with PDL subclasses (#363)
- remove docs for {type,map}fld
- splitdim throws exception if non-divisible nsp given, can give negative dim
- changed matmult tilesize from 64 to 8*sizeof(double)/sizeof(gentype) - performance increases 50%, comparable to reference LAPACK
- fix NiceSlice regression - thanks @fantasma13 for report
2.075 2022-02-19
- fix false-positive heredoc in bitshift (#383) - thanks @d-lamb for report
- threading now called broadcasting (compat aliases created)
- fix 2.057_01 regression in {broadcast,thread}_define - thanks @eserte for report
- fix regression of append allowing type upgrade to second argument's type
- add empty() function
- fix when readdata functions return error (#356)
- RedoDimsCode can now use $SIZE(other_index) (#386)
2.074 2022-02-08
- fix PDL::Complex->null stringify error
2.073 2022-02-07
- PDL::Complex no longer undefs PDL::i
- passing null as input param now an error
- can now unify Code and BadCode into Code, and use PDL_IF_BAD() or #ifdef PDL_BAD_CODE
- add macros PDL_IF_GENTYPE_{REAL,INTEGER,UNSIGNED}(iftrue,iffalse) in Code
- fix IO::IDL (#381) - thanks @YuryPakhomov for report and test data
- fix [t] Pars with multi-thread; now cannot be passed as params (#382) - thanks @d-lamb for report
2.072 2022-01-30
- fix bug in qsortveci that broke PDL::VectorValued - thanks @zmughal for report
2.071 2022-01-29
- fix segfault bug in qsortvec - thanks @zmughal for investigation and report
2.070 2022-01-28
- add GIS::Proj::proj_version
- fix Transform::Proj4 tests to work with ortho results in PROJ >6.3.1 (assumed 8+)
2.069 2022-01-28
- PDL::NiceSlice override Text::Balanced::extract_multiple for performance
2.068_07 2022-01-28
- fix PDL::new bug in creating longlong (#378) - thanks @zmughal
2.068_06 2022-01-25
- fix PDL::new bug in creating longdouble (#374) - thanks @zmughal
2.068_05 2022-01-23
- build and test-false-negative-avoidance improvements
2.068_04 2022-01-22
- fix bug in memory allocation revealed on 32-bit
- add nbytes method
2.068_03 2022-01-20
- improve GSL version parsing - thanks @d-lamb
- Slatec to work again with 32-bit pointer size
- got_complex_version to check for long-double version to reduce build fails
2.068_02 2022-01-17
- Slatec 64-bit safe
2.068_01 2022-01-16
- Minuit 64-bit safe
- Slatec 64-bit improvements
- fix IO::FITS::rfits with variable-length data to work on bigendian
2.068 2022-01-14
- add pdl.nbytes
- specify SByte as explicitly "signed" as C99 allows unsigned if not say
2.067 2022-01-13
- remove PDL.grow from API
- remove $PDL::BIGPDL check for 1GB data
- fix 2.064 regression in $pdl->sequence - thanks @moocow-the-bovine
- PDL_CORE_VERSION 20
2.066 2022-01-10
- re-release without erroneous OpenGL::GLUT requires dep
2.065 2022-01-10
- switch TriD stuff to use OpenGL::GLUT for GLUT functionality
- GLUT TriD now reopens the window on next draw if was closed
- bifuncs like Ops::plus no longer need explicit swap parameter
- add C "PDL_Value" union type
- replace Convert::UU as dep with own code - thanks @sebastic for suggestion
2.064 2022-01-08
- enable perldl -glut on Win32
2.063_05 2022-01-08
- rename PDL::get_trans to trans_parent
- add PDL::Trans::{parents,children}
- rename pdl.child_transes to trans_children, add PDL::trans_children
2.063_04 2022-01-07
- pdlpp_mkgen runs .pd files in correct dir
- PDL.changesoon removed
- longlong default bad value now LLONG_MIN
- add signed byte (SB), unsigned long (UL) and longlong (ULL)
- add Bad::locf - thanks @kmx
- fix qsortvec* with bad values - thanks @d-lamb for report
- hook @drzowie-created RICE_1 compression up to wfits
- PDL::FFT now thread- and 64-bit-safe
- sclr to croak if called on multi-element array
- $TXYZ() macros fatal error if any of trans's GenericTypes not dealt with
- add long double both real (LD) and complex (CLD)
- NiceSlice uses the better Filter::Simple version as is now quick
- IO::Pic::wpic assume PBM can do 16-bits per sample as exists since 2003
- added PDL::Graphics, an overview of modules - thanks @mascip
- add Type::bswap
- IO::Pnm::{r,w}pnm can work on open file-handle
- IO::Pic::rmpeg added
- IO::Pic::rpic will return an n+1-dim ndarray if multiple images in file
- set_datatype (and PDL.converttype) now badval-aware
- add dependency on File::Which - thanks @zmughal
- pp_addpm automatically adds line-number from .pd to aid debugging
- PDL_Indx now a C ptrdiff_t, PDL_*Long now C {,u}int{32,64}_t to simplify config
- xvals etc now return at least a double
- Primitive::{fibonacci,axisvalues} not output-only but can work inplace
2.063_03 2021-12-23
- add pp_add_macros
2.063_02 2021-12-23
- add PDL.scalar
- add dummy pdl_pthread_main_thread for when no POSIX threads
- PDL.pdlnew to make a null pdl except not ALLOCATED
- stopped disabling pthreads on BSD
2.063_01 2021-12-21
- define, use PDL_REPRINCS
- PDL.{pdlnew,null,get_thread{dims,offsp{,_int}}} return NULL on error, not croak
- PDL.{trans_check_pdls,barf_if_error,error_accumulate}
- PDL.{magic_get_thread,{start,iter}threadloop} return -1 not die
- PDL.sever returns pdl_error not pdl * (Perl interface stays same)
- ANYVAL_ISBAD interface change
- fix ->at with pdl having non-default badvalue
- macro args can contain () eg $CROAK("%d", $SIZE(n))
- remove Slices::flowconvert
- PDL_ISBAD macro
- bad values of NaN now work right with $ISBAD() etc
- rename PDL.slice_args_parse to slice_args_parse_sv
- stop redodims leaking memory
- remove PDL.{dim_checks,get,put_offs} from Core
- rename PDL.children_changesoon to changesoon
- GIS::Proj inplace funcs set output bad if any input bad
- switched GIS::Proj to PROJ 6 API
- PDL.make_error{,_simple} for error-handling instead of croak et al - can't just return as generated functions no longer return void
- remove PDL.vaffinechanged
- fix zeroes() regression from 2.057_01 where zeroes($byte_pdl) would give double
- make PDL::Compression functions thread-safe
- remove Core::set_dataflow_b
- PDL.affine_new to take PDL_Indx* not SV*
- PDL_CORE_VERSION 19
2.063 2021-11-19
- PDL::Core::seed - thanks @zmughal
2.062 2021-11-19
- Primitive::srand() added, random() calls if not done yet - thanks @whumann for report
- Primitive::random() et al to use xoroshiro256plus instead of Perl's rand()
- Primitive::random() et al able to pthread
2.061 2021-11-11
- native-complex ->re and ->im methods do two-way dataflow
- fix pp_line_numbers change not being done right for .pm
2.060 2021-11-08
- work around more recent GCC not tgmath-ing log10 for complex
2.059 2021-11-08
- removed supplied Cephes functions that C99 mandates
- Ops,Math to use tgmath.h not own $T() stuff
- MatrixOps switch from bespoke SSLib complex to C99 native complex
- Core::online_cpus, used to set_autopthread_targ if no env var set
2.058 2021-11-06
- no changes from 2.057_05
2.057_05 2021-11-06
- (DO{COMP,PRIV})DIMS -> more-accurate ${1}ALLOC
- stop Pars or OtherPars called "I" - thanks Judd Taylor for report
- pp_line_numbers restores line numbering after end of given text
- allow "CTYPE var[]" as OtherPars, add T_PDL_DIMLIST to typemap
- pnminraw etc to take $filehandle not just name of glob
2.057_04 2021-10-12
- remove legacy pdl_create
- remove long-deprecated nslice
- multi-C only updates files that have changed, for faster rebuilds
- because OtherPars are now in a separate struct, no restriction on names
- mslice is just an alias to Slices::slice
- allow any pointer including pdl * as OtherPars
2.057_03 2021-10-02
- remove IO::Misc::rdsa, untested since PDL 1.9 and needing non-CPAN "DSA" module
- throw error when XS called with inplace input but also explicit output
- OtherPars to separate struct; pdl_transvtable.structsize of that
- allow external .pd to opt-in to one-C-file-per-function
2.057_02 2021-09-26
- split internal .pd into one C file per pp_def function allowing parallel build
- tidy various modules so they don't get symbol clashes from that
2.057_01 2021-09-24
- fix pp_add_boot to remove any blank lines (such as added by pp_line_numbers)
- GSL::CDF now uses barf() on error, not GSL default of core-dump
- propagate_badflag only recurses with children that had different value
- Example/doc-pp script to use GraphViz2 to show pp_def key dependencies
- affineinternal only read/write when both parent & child physical
- allow zero-length ndarray as slice index even for length-1 dim - thanks @trevcs for report (SF#443, GH#229)
- replace some malloc/free with smalloc to not leak on exception
- replace whole genpp infrastructure with generated C macro
- remove Core.twod, requires recompile
- remove PDL::iscontig
- move all non-SV-using C out of Core.xs to C files
- remove unused pdl_{copy,unpackdims} including from Core struct
- move extra checks and functionality from Core.xs setdims into pdl_setdims, call that
- fix off-by-one error in nthreadids
- pthreading can be over non-divisible number of threads
- remove Core.qsort_*
- zeroes now quicker as only does memset, not assgn operation
- add $PPSYM()
- change API of PDL->converttype to remove obsolete flag
- remove unused "copy" mechanism for pdl_trans
- rename (struct pdl).trans -> trans_parent for comprehensibility
- now an error if CopyBadStatusCode uses $PRIV(bvalflag)
- fix setnantobad doc to match behaviour fixed in 2.040, add setnonfinitetobad
- Inplace now throws error for >2 elements in array-ref
- remove oslice (after 8 years) and never-used Slices::{s_,}identity
- all PDL operations now have a C function interface called pdl_(name)_run
- add setinftobad - thanks @alex-prusevich for suggestion
- PDL_CORE_VERSION 18
2.057 2021-08-13
- restore PDL_MAGIC_DELETEDATA mechanism
- PDL_CORE_VERSION 17
2.056 2021-08-08
- remove (very-)long-deprecated mmap code in favour of File::Map
- remove obsolete Core members, update Core version
- remove unnecessary Core members to reduce struct size and increase cacheability
- removed legacy mmap implementation including PDL_MAGIC_DELETEDATA mechanism
- remove PDL::Constants::{I,J} which returned a PDL::Complex - use PDL::i()
- n{good,bad}over, sum, prod, *pct, etc now return ndarrays not Perl values
- make PDL::IO::FastRaw::mapfraw not allocate RAM
- PDL_CORE_VERSION 16
2.055 2021-08-03
- officially deprecate PDL::Complex in favour of "native complex" - thanks @wlmb for suggestion
- throw exception for [phys] Pars with multi-used, non-matching dim of 1 instead of silent repeat
2.054 2021-07-26
- add PDL::Core::at_c as back-compat alias for at_bad_c
2.053 2021-07-26
- work around P:G:Limits::round_pow failing tests with uselongdouble
2.052 2021-07-04
- fix IO::Storable bug - thanks @viy2 for report
- add PDL::Opt::Simplex example - thanks @ewheelerinc
- allow POD in pp_line_numbers again - thanks @fantasma13 for report
2.051 2021-06-14
- also use $Config{cppflags} to find GD includes - thanks @d-lamb for report
2.050 2021-06-02
- fix pdlperl.h build bug - thanks @jplesnik for report
2.049 2021-05-31
- PDL::Complex->from_native / as_native
- zap obsolete MatrixOps::eigen_c
- MatrixOps::identity now preserves higher dims on multi-dim input
- copy now copies ndarray and leaves original ndarray's inplace alone
- MatrixOps::lu_decomp now preserves inplace flag on input
- MatrixOps::lu_backsub now gets output dims right including inplace - thanks @wlmb for report
2.048 2021-05-24
- remove obsolete and inaccurate doc relating bad values to NaN
- parse simple complex-number strings
- SvPDLV gives more comprehensible error if given a hash without "PDL" key
- drop SKIP_KNOWN_PROBLEMS support
- drop POGL_VERSION, USE_POGL, WITH_3D config; just try building
- Inline now not a dep but if installed gets updated to suitable version
- drop WITH_SLATEC config; just try building
- new pdlperl.h for Perl-specific functions/macros
- $PDL::undefval can be ndarray
- replace PDL::Complex stringification with native-complex version
- overloading now done in PDL::Ops/Primitive where functions defined
- overloading honours subclass methods
2.047 2021-05-08
- add PDL::i2C
- replace creal, cimag with re, im, for easier PDL::Complex -> native transition
- change default r2C and i2C input types to D from F
- add czip($re, $im) -> native complex
- i() as function (not constant) like nan()
- ci() removed
- add abs2
- re, im not exported due to clash with Test::Deep
2.046 2021-05-04
- pdl([native-complex]) now creates a native-complex ndarray
- sumover/prodover now also process native complex
2.045 2021-05-03
- PDL::r2C able to take simple numbers
- comparing PDL::Complex other than for equality now a fatal error, can == with real
- same comparison change in native complex
- PDL::Complex slices that affect 0-th dim get re-blessed as PDL
- PDL::Complex can assign real values and threading won't also assign to imag
- PDL::Constants only loads PDL::Complex on demand
2.044 2021-05-01
- fix a definite malloc error that may be what started build failures on 32-bit
2.043 2021-04-30
- fix case-sensitivity issue for earlier Perls in stringifying "NaN" - thanks @zmughal
2.042 2021-04-30
- ones, zeroes can be called with no args, returns zero-dims ndarray
- add nan() and inf() that behave similarly to ones, mutatum mutandis
2.041 2021-04-30
- at least GCC 4.8.5 needs loop var declared first
- can now use Inline "with" PDL in languages other than C
- ipow second param is "indx" so specify
- ipow only operate on floating-point types
2.040_02 2021-04-29
- build fixes plus make LINALG work on 32-bit
- update metadata to correct List::Util version dep
2.040_01 2021-04-28
- all C dimension- and threadid-related things now typed PDL_Indx
- PDL_CORE_VERSION 15
2.040 2021-04-27
- PDL_CORE_VERSION 14 for Core struct updates
- drop unused dep Module::Compile
- switch from List::MoreUtils to List::Util to reduce deps
- bad value per-PDL support now always present, not configurable
- use C99 isnan() to check for NaN, not isfinite(); complex if either are NaN
- the above (this note added post facto) changes setnantobad's behaviour to match function name
- can use NaN as badvalue for all floating-point types
- BADVAL_USENAN configuration option removed
- remove checks for _MSC_VER < 1400 as native complex req renders irrelevant
- add $type->floatsuffix for more generalisation
- all pdl.h type code generated from type objects to ease adding new types
- all suitable PDL::Primitive functions support native complex
- add PDL::GSL::LINALG - linear algebra routines from GSL
2.039 2021-04-24
- update lu_backsub docs with comparison to other linear algebra code
- fix "complex" type-qualifier bug affecting native-complex r2C
- add core pdl_at0
- Core.xs:set_c, badvalue now able to take a PDL object not just Perl scalar
- can construct a PDL object with Math::Complex objects
- fix cfloat-comparison that was breaking badval detection in complex types
- add $type->isnan('c expression')
- badvalue doesn't force return values to be Perl scalar but PDL object
- native complex values get Perl-ised into PDL::Complex::Overloads objects not strings
2.038 2021-04-19
- make pdlpp_postamble 4th arg be XS subs destination
- Inline::Pdlpp can take package param to put XS subs into
- incorporated GSL CDF functions out of PDL::Stats - thanks @maggiexyz!
2.037 2021-04-16
- switch obsolete finite() to C99 isfinite()
- add ppdefs_all
- make PDL::Types::ppdefs only return non-complex types for back-compat
2.036 2021-04-16
- fix t/gis_proj.t
2.035 2021-04-15
- bad value support now always present, not configurable
- pthread detection simplified, now enabled for Windows and MacOS
- remove check in build for ~/.perldl.conf
- remove TEMPDIR config - all now use File::Temp
- remove unnecessary PDL::Version (just "require PDL")
- relocate tests to beside what's tested (helps with any split)
- incorporate patches from downstream OpenSUSE - thanks @perlpunk
- add ppdefs_complex
2.034 2021-03-31
- add "complex" Pars type qualifier, r2C function
2.033 2021-03-30
- native complex documented better - thanks @fantasma13
- add "real" Pars type qualifier
2.032 2021-03-24
- fix t/pptest.t so it passes on 5.10, add VERSION_FROM to pdlpp_stdargs
2.031 2021-03-23
- pp_setversion preserves version as string, handling quote characters
2.030 2021-03-21
- PDL::Types now have the data to make PDL::Type::real etc operate
- pp_setversion treats (and preserves) version as string
2.029 2021-03-12
- no changes from 2.028_01
2.028_01 2021-03-08
- stop claiming packages C::StructObj C::StructType C::Type C::Var SymTab Win32::DDE::Netscape XS
- incorporate relevant improvements made in PDLA distros
- fix t/nat_complex.t to avoid glibc bug 18594 (fixed v2.22)
2.028 2021-03-07
- correct complex-maths functions for their C types
- fix MOD-problem-dodging logic for native complex
2.027 2021-03-06
- no changes from 2.026_04
2.026_04 2021-03-02
- define and use C macros in PP for shorter, more comprehensible XS
2.026_03 2021-02-28
- got_complex_version change to defeat FreeBSD 10 false positive for complex funcs
- trig functions like asin($perl_scalar) return NaN for >1 again
2.026_02 2021-02-25
- implement PDL::Type::real etc
- native complex numbers need check_lib as FreeBSD <10 has no complex trig
2.026_01 2021-02-19
- native support for complex numbers - thanks @fantasma13
2.026 2021-02-13
- fix GSL build errors, improve docs - thanks @d-lamb
- rfits properly treats BLANK in rice-compressed - thanks @d-lamb
- added Floyd-Warshall example to MATLAB comparison doc
2.025 2020-11-19
- fix spellings - thanks @sebastic
2.024 2020-09-17
- use CCCDLFLAGS for compile of pdl.c to include -fPIC where needed - thanks @newville
2.023 2020-09-14
- Remove extrapolation code from PDL::GSL::INTERP. - thanks @d-lamb
2.022 2020-09-06
- Fix wfits so that explicitly setting BITPIX works. - thanks @d-lamb
- add PDL::IO::Pic::imageformat - thanks @wlmb
2.021 2020-03-01
- fix pdlpp_postamble - thanks @sebastic
2.020_05 2019-12-29
- fix t/pgplot.t
2.020_04 2019-12-28
- more diagnostic info for PGPLOT / F77
2.020_03 2019-12-26
- PGPLOT test to check $DISPLAY first
- CallExt test to use abs path because of recent MacOS change
2.020_02 2019-12-17
- spelling fixes - thanks @sebastic
2.020_01 2019-12-12
- merge the documentation system updates - thanks @d-lamb
2.020 2019-12-12
- no changes from 2.019_06
2.019_06 2019-12-08
- PGPLOT stop accidentally finding own PGPLOT.pm from . in @INC - was loading installed %PDL::Config into Makefile.PL process
2.019_05 2019-12-02
- calloc->malloc+memset, as calloc on Win32 = "free to wrong pool"
- memset after malloc in pdlapi.c
2.019_04 2019-11-27
- fix PdlParObj.pm excessive pp_line_numbers
2.019_03 2019-11-25
- t/config.t stop specifying number of %Config keys
- update Inline dep for ILSM-finding bug
- use pp_line_numbers in PP.pm and ops.pd
- use calloc not malloc to reduce valgrind errors in ufunc.t
2.019_02 2019-11-19
- fix t/fits.t tempfiles use
- _oneliner to use EU::MM right
2.019_01 2019-11-10
- Honor LDFLAGS when building pdl - thanks @wiz-0
- build works even without Devel::CheckLib
- race condition in tests fixed to allow parallel tests
- fix spelling errors - thanks @sebastic
- Fix tilde expansion tests when non-existent $HOME - thanks @sebastic
- zap inc/Carp - fix #94
- update doc URLs, and docs - thanks @d-lamb
- replace all non-sort, non-ppdef-doc $a/$b in codebase - thanks @d-lamb
- Clean up PDL::Fit::Gaussian docs and tests - thanks @d-lamb
- badval fixes on systems with only unsigned chars - thanks @d-lamb
- fix segfault in some uses of PDL::Transform::map - thanks @d-lamb
- Improve compatibility with Perl's experimental 'bitwise' feature - thanks [email protected]
- RedoDims fix - thanks @drzowie
- range speedup - thanks @drzowie
- PDL::Lite fixes to bug that broke Test::PDL
- propagation of badflag with .= - thanks @hainest
- doc-building fixes for Windows
- quote-protect rpic/wpic commands
- test-coverage now available for XS files too
- Only build PDL::Graphics::PGPLOT if PGPLOT installed
- better vsearch_* docs - thanks @zmughal
- PDL::Complex doc and code fixes, tests, and improvements - thanks @d-lamb
v2.019 2018-05-05 16:42:44-04:00
General Notes:
* This is version 2.019 of the Perl Data Language.
* It is a the first official release of PDL initiating
the development and release moving from sourceforge
to github hosting.
Highlights:
* cat returns an ndarray of the highest input type, not
the first.
* The 'thresh' options in fitwarp2d has been removed.
* rfits/wfits now do tilde filename expansion.
* det in MatrixOps now uses the cached lu_decomp
value correctly.
* Multiple minor fixes, docs, cleanup, and changing
things to point to github away from sf.net.
v2.018_02 2018-04-28 13:46:27-04:00
General Notes:
* This is version 2.018_02 of the Perl Data Language.
* It is a the release candidate for the PDL-2.019
release which marks the move of PDL development
from sf.net to github.
Highlights:
* Various updates to redirect links and documentation refs
to the github ones.
* Various fixes over the past year since PDL-2.018 release
which will be documented at the next official PDL release.
v2.018_01 2018-04-13 09:56:56-04:00
General Notes:
* This is version 2.018_01 of the Perl Data Language.
* It is a transition developers release for the move of
PDL development from sf.net to github.
Highlights:
* Various updates to redirect links and documentation refs
to the github ones.
* Various fixes over the past year since PDL-2.018 release
which will be documented at the next official PDL release.
v2.018 2017-05-21 17:02:03-04:00
General Notes:
* This is version 2.018 of the Perl Data Language.
Highlights:
* SF.net Bugs fixed:
429 Alien::Proj4->load_projection_information parses PJ_sch parameters incorrectly
432 Work around List::MoreUtils bug t/gd_oo_test.t started failing in testers.
433 GSL SF errors kill perl and pdl2/perldl shell
434 Missing indx type in heading list of conversions.
* Build improvements:
- Add requirements and better test diags for PDL::IO::GD.
- Apppy patch so PDL::Lite can be used more than once
Thanks to Shawn Laffan for the patch.
- Fix build on perl <= 5.14 by adding ExtUtils::ParseXS to
CONFIGURE_REQUIRES.
- Make coretarget generate parallelisable make deps Make
"core" target be generated by separate function
- Fixes for coming removal of . from @INC for PDL build.
Thanks to Todd Rinaldo for the first patch and raising the issue.
* Various updates to the documentation.
v2.017_02 2017-05-18 17:33:55-04:00
General Notes:
* This is version 2.017_02 of the Perl Data Language,
and essentially PDL 2.018 release candidate 1. If
it tests ok we expect to release it as PDL 2.018 this
weekend.
Highlights:
* Fix problem where PDL::Lite could not be loaded more
than once. (Thanks to Shawn Laffan)
* Fix sf.net bug #429 with poor generation of documentation.
* Fix sf.net bug #433 where errors in GSL routines caused
perl to exit.
* Build enhancements for PDL::IO::GD to improve test
diagnostic messages and add List::MoreUtils as a
dependency for PDL.
* Better docs and explanation of indx datatype.
This closes sf.net bug #434.
* Add some missing modules to DEPENDENCIES (thanks
to Luis Mochan).
v2.017_01 2017-04-29 11:39:22-04:00
General Notes:
* This is version 2.017_01 of the Perl Data Language,
* Addresses some problems from changes in the perl
infrastructure that are or will break things in PDL.
Highlights:
* Handle coming removal of '.' from @INC
* Fix sf bug #432: Work around List::MoreUtils bug
This was causing a lot of PDL test failures.
* Fix build problem on perl <= 5.14
v2.017 2016-10-08 13:50:39-04:00
General Notes:
* This is version 2.017 of the Perl Data Language,
* Bugs fixed:
379 Passing qsort an extra argument causes a segfault
393 Tests may fail if perl is compiled with -Duselongdouble
409 PDL demos with PGPLOT display ignore $ENV{PGPLOT_DEV}
413 PDL::Core::Dev::pdlpp_postamble() cannot handle .pd files in subdirectories
419 t/#pdl_from_string.t fails on long double systems
421 PDL::IO::FITS can't handle 64-bit integers (longlong, indx)
422 PDL misc. compiler warnings.
423 wcols FORMAT option always incorrectly gives error
424 Calling PDL on a list of ndarrays fails to propogate bad values
425 svd is broken for everything but 2x2 matrices
--- Typo in PDL::GSLSF::COUPLING routine gsl_sf_coupling_6j
Highlights:
* Several patches contributed from the Debian team have been applied
that fix documentation spelling errors, make PDL builds more
reproducible, and will make packaging PDL easier.
* More helpful error message when multi-element PDL is used in
a boolean expression (feature request #84)
* Improve argument size handling and documentation for rle