569:
89:
542:, with a C/PP interface layer. Many of the supplied functions are written in PDL itself. PP is available to the user to write C-language extensions to PDL. There is also an Inline module (Inline::Pdlpp) that allows PP function definitions to be inserted directly into a Perl script; the relevant code is low-level compiled and made available as a Perl subroutine.
281:
788:
Sánchez SF, Pérez E, Sánchez-Blázquez P, González JJ, Rosález-Ortega FF, Cano-Dà az M, López-Cobá C, Marino RA, Gil de Paz A, Mollá M, López-Sánchez AR, Ascasibar Y, Barrera-Ballesteros J (April 2016). "Pipe3D, a pipeline to analyze
Integral Field Spectroscopy Data: I. New fitting philosophy of
380:
or general and generalized linear modeling methods such as ANOVA, linear regression, PCA, and logistic regression. Examples of PDL usage for regression modelling tasks include evaluating association between education attainment and ancestry differences of parents, comparison of RNA-protein
556:
of numeric or character values. All of the standard Perl operators are overloaded so that they can be used on PDL objects transparently, and PDLs can be mixed-and-matched with normal Perl scalars. Several hundred object methods for operating on PDLs are supplied by the core modules.
208:
of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher-dimensional operations (such as matrix multiplication) are supported.
397:, which can be used to perform simple calculations without requiring the user to create a Perl program file. A typical session of perldl would look something like the following:
678:
Abdellaoui A, Hottenga JJ, Willemsen G, Bartels M, van
Beijsterveldt T, Ehli EA, Davies GE, Brooks A, Sullivan PF, Penninx BW, de Geus EJ, Boomsma DI (Mar 2015).
582:
884:
225:
notation, so that the user can combine and operate on large arrays with simple expressions. In this respect, PDL follows in the footsteps of the
534:, a PDL-specific metalanguage that handles the vectorization of simple C snippets and interfaces them with the Perl host language via Perl's
245:. Unlike MATLAB and IDL, PDL allows great flexibility in indexing and vectorization: for example, if a subroutine normally operates on a 2-D
869:
574:
587:
874:
879:
849:
650:
80:
165:
161:
129:
333:
234:
545:
The PDL API uses the basic Perl 5 object-oriented functionality: PDL defines a new type of Perl scalar object (
527:
309:
226:
261:
257:
889:
503:
54:
46:
808:
691:
265:
246:
193:
25:
381:
interaction profiles that needs regression-based normalization and analysis of spectra of galaxies.
680:"Educational Attainment Influences Levels of Homozygosity through Migration and Assortative Mating"
499:
88:
196:, and adds functionality to manipulate those arrays as vector objects. It also provides tools for
50:
798:
377:
222:
37:
664:
770:
719:
623:
390:
218:
30:
292:
roots of Perl, PDL borrows from several different modules for graphics and plotting support.
760:
750:
709:
699:
373:
201:
197:
133:
124:
112:
549:
called a "PDL", or "ndarray") that acts as a Perl scalar, but that contains a conventional
636:
553:
364:
Perl I/O libraries to read and write data in hundreds of standard and niche file formats.
341:
42:
812:
695:
765:
738:
714:
679:
608:
205:
117:
488:
The commands used in the shell are Perl statements that can be used in a program with
863:
289:
185:
854:
704:
253:
will generally cause the same operation to happen to each 2-D layer of the cube.
844:
651:"Putting Perl Back on Top in the Fields of Scientific and Financial Computing"
564:
242:
755:
550:
535:
360:, raw binary files, and delimited ASCII tables. PDL programmers can use the
328:
PDL provides facilities to read and write many open data formats, including
250:
838:
774:
723:
269:
221:
language: the expression syntax is a variation on standard mathematical
539:
313:
297:
268:
forms may be combined. Subroutines may be loaded either via a built-in
256:
PDL borrows from Perl at least three basic types of program structure:
312:
modules are supported for 2-D graphics and plotting applications, and
546:
353:
317:
305:
301:
293:
230:
280:
192:. PDL extends the data structures built into Perl, to include large
803:
739:"dCLIP: a computational approach for comparative CLIP-seq analyses"
279:
238:
361:
357:
349:
345:
329:
189:
169:
337:
296:
provides image file I/O (though FITS is supported natively).
229:, and it has been compared to commercial languages such as
389:
An installation of PDL usually comes with an interactive
144:
831:
376:. It includes modules that are used to perform classic
609:
https://github.com/PDLPorters/pdl/releases/tag/2.089
665:"PDL online documentation (PDL::Threading section)"
155:
139:
123:
111:
79:
60:
36:
24:
272:mechanism or via the usual Perl module mechanism.
855:Example of PDL usage in the scientific literature
320:are supported for 3-D plotting and rendering.
8:
791:Revista Mexicana de AstronomĂa y AstrofĂsica
19:
850:Draft release of the PDL Book for PDL-2.006
530:. Most of the functionality is written in
87:
18:
802:
764:
754:
713:
703:
583:Comparison of numerical-analysis software
599:
632:
621:
538:compiler. Some modules are written in
512:in the last command is a shortcut for
237:, and to other free languages such as
7:
575:Free and open-source software portal
188:array programming extensions to the
588:List of numerical-analysis software
737:Wang T, Xie Y, Xiao G (Jan 2014).
16:Array programming library for Perl
14:
567:
885:Numerical programming languages
526:The core of PDL is written in
1:
705:10.1371/journal.pone.0118935
870:Array programming languages
906:
284:A plot generated using PDL
130:GNU General Public License
875:Free mathematics software
841:PDL Intro & resources
235:Interactive Data Language
190:Perl programming language
160:
107:
75:
756:10.1186/gb-2014-15-1-r11
399:
249:array, passing it a 3-D
227:APL programming language
20:Perl Data Language (PDL)
845:Tutorial lecture on PDL
194:multidimensional arrays
285:
262:functional programming
258:imperative programming
94:; 4 months ago
880:Free science software
504:matrix multiplication
283:
372:PDL can be used for
266:pipeline programming
217:PDL is a vectorized
839:PDL Quick Reference
813:2016RMxAA..52...21S
696:2015PLoSO..1018935A
500:overloaded operator
61:First appeared
21:
378:k-means clustering
286:
178:Perl Data Language
631:Missing or empty
492:module included.
219:array programming
206:computer modeling
175:
174:
55:Christian Soeller
897:
835:
834:
832:Official website
817:
816:
806:
785:
779:
778:
768:
758:
734:
728:
727:
717:
707:
675:
669:
668:
661:
655:
654:
647:
641:
640:
634:
629:
627:
619:
617:
615:
604:
577:
572:
571:
570:
516:
510:
496:
491:
484:
481:
478:
475:
472:
469:
466:
463:
460:
457:
454:
451:
448:
445:
442:
439:
436:
433:
430:
427:
424:
421:
418:
415:
412:
409:
406:
403:
374:machine learning
368:Machine learning
202:machine learning
198:image processing
151:
148:
146:
134:Artistic License
102:
100:
95:
91:
71:
69:
47:Jarle Brinchmann
22:
905:
904:
900:
899:
898:
896:
895:
894:
860:
859:
830:
829:
826:
821:
820:
787:
786:
782:
736:
735:
731:
690:(3): e0118935.
677:
676:
672:
663:
662:
658:
649:
648:
644:
630:
620:
613:
611:
606:
605:
601:
596:
573:
568:
566:
563:
524:
514:
508:
494:
489:
486:
485:
482:
479:
476:
473:
470:
467:
464:
461:
458:
455:
452:
449:
446:
443:
440:
437:
434:
431:
428:
425:
422:
419:
416:
413:
410:
407:
404:
401:
387:
370:
326:
278:
215:
213:Language design
143:
103:
98:
96:
93:
67:
65:
43:Karl Glazebrook
17:
12:
11:
5:
903:
901:
893:
892:
887:
882:
877:
872:
862:
861:
858:
857:
852:
847:
842:
836:
825:
824:External links
822:
819:
818:
780:
743:Genome Biology
729:
670:
656:
642:
607:. 12 May 2024
598:
597:
595:
592:
591:
590:
585:
579:
578:
562:
559:
523:
522:Implementation
520:
400:
386:
383:
369:
366:
325:
322:
277:
274:
214:
211:
184:) is a set of
173:
172:
158:
157:
153:
152:
141:
137:
136:
127:
121:
120:
118:Cross-platform
115:
109:
108:
105:
104:
85:
83:
81:Stable release
77:
76:
73:
72:
62:
58:
57:
40:
34:
33:
28:
15:
13:
10:
9:
6:
4:
3:
2:
902:
891:
888:
886:
883:
881:
878:
876:
873:
871:
868:
867:
865:
856:
853:
851:
848:
846:
843:
840:
837:
833:
828:
827:
823:
814:
810:
805:
800:
796:
792:
784:
781:
776:
772:
767:
762:
757:
752:
748:
744:
740:
733:
730:
725:
721:
716:
711:
706:
701:
697:
693:
689:
685:
681:
674:
671:
666:
660:
657:
652:
646:
643:
638:
625:
610:
603:
600:
593:
589:
586:
584:
581:
580:
576:
565:
560:
558:
555:
552:
548:
543:
541:
537:
533:
529:
521:
519:
517:
511:
505:
501:
497:
398:
396:
392:
384:
382:
379:
375:
367:
365:
363:
359:
355:
351:
347:
343:
339:
335:
331:
323:
321:
319:
315:
311:
307:
303:
299:
295:
291:
290:glue language
282:
275:
273:
271:
267:
263:
259:
254:
252:
248:
244:
240:
236:
232:
228:
224:
220:
212:
210:
207:
203:
199:
195:
191:
187:
186:free software
183:
180:(abbreviated
179:
171:
167:
163:
159:
156:Influenced by
154:
150:
142:
138:
135:
131:
128:
126:
122:
119:
116:
114:
110:
106:
92:/ 12 May 2024
90:
84:
82:
78:
74:
63:
59:
56:
52:
48:
44:
41:
39:
35:
32:
29:
27:
23:
890:Perl modules
794:
790:
783:
746:
742:
732:
687:
683:
673:
659:
645:
633:|title=
612:. Retrieved
602:
544:
531:
525:
513:
507:
493:
487:
394:
388:
371:
327:
288:True to the
287:
255:
216:
181:
177:
176:
51:Tuomas Lukka
547:eponymously
99:12 May 2024
86:2.089
864:Categories
804:1509.08552
749:(1): R11.
594:References
797:: 21–53.
393:known as
251:data cube
38:Developer
789:FIT3D".
775:24398258
724:25734509
684:PLOS ONE
624:cite web
561:See also
276:Graphics
270:autoload
26:Paradigm
809:Bibcode
766:4054096
715:4347978
692:Bibcode
614:20 June
540:Fortran
314:Gnuplot
298:Gnuplot
140:Website
125:License
97: (
66: (
773:
763:
722:
712:
506:, and
498:is an
465:perldl
441:perldl
423:perldl
402:perldl
395:perldl
385:perldl
354:NetCDF
318:OpenGL
308:, and
306:PGPLOT
302:PLplot
294:NetPBM
264:, and
247:matrix
243:Octave
231:MATLAB
223:vector
53:, and
799:arXiv
554:array
551:typed
515:print
391:shell
310:Prima
239:NumPy
147:.perl
31:Array
771:PMID
720:PMID
637:help
616:2024
502:for
468:>
444:>
426:>
405:>
362:CPAN
358:GRIB
350:FITS
346:MPEG
330:JPEG
316:and
241:and
233:and
170:Perl
149:.org
68:1996
64:1996
761:PMC
751:doi
710:PMC
700:doi
490:PDL
474:$ z
459:$ y
453:$ x
447:$ z
438:,];
435:pdl
429:$ y
414:pdl
408:$ x
342:PPM
338:GIF
334:PNG
324:I/O
182:PDL
166:IDL
162:APL
145:pdl
866::
807:.
795:52
793:.
769:.
759:.
747:15
745:.
741:.
718:.
708:.
698:.
688:10
686:.
682:.
628::
626:}}
622:{{
536:XS
532:PP
518:.
420:];
356:,
352:,
348:,
344:,
340:,
336:,
332:,
304:,
300:,
260:,
204:,
200:,
168:,
164:,
132:,
113:OS
49:,
45:,
815:.
811::
801::
777:.
753::
726:.
702::
694::
667:.
653:.
639:)
635:(
618:.
528:C
509:p
495:x
483:]
480:[
477:;
471:p
462:;
456:x
450:=
432:=
417:,
411:=
101:)
70:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.