पर्ल डेटा लैंग्वेज: Difference between revisions
(Created page with "{{Short description|Array programming library for Perl}} {{Infobox programming language | name = Perl Data Language (PDL) | paradigm = Arra...") |
No edit summary |
||
Line 13: | Line 13: | ||
}} | }} | ||
[[पर्ल]] डेटा लैंग्वेज (संक्षिप्त रूप में पीडीएल) पर्ल के लिए [[मुफ्त सॉफ्टवेयर]] ऐरे प्रोग्रामिंग एक्सटेंशन का एक सेट है। पीडीएल बड़ी ऐरे डेटा संरचना को | [[पर्ल]] डेटा लैंग्वेज (संक्षिप्त रूप में पीडीएल) पर्ल के लिए [[मुफ्त सॉफ्टवेयर]] ऐरे प्रोग्रामिंग एक्सटेंशन का एक सेट है। पीडीएल बड़ी ऐरे डेटा संरचना को सम्मिलित करने के लिए पर्ल में निर्मित डेटा संरचनाओं का विस्तार करता है, और उन ऐरे को वेक्टर ऑब्जेक्ट के रूप में हेरफेर करने के लिए कार्यक्षमता जोड़ता है। यह [[ मूर्ति प्रोद्योगिकी ]], [[ यंत्र अधिगम ]], भौतिक प्रणालियों के [[कंप्यूटर मॉडल]]िंग और ग्राफिकल प्लॉटिंग और प्रस्तुति के लिए उपकरण भी प्रदान करता है। सरल संचालन स्वचालित रूप से संपूर्ण सरणियों में वेक्टरकृत होते हैं, और उच्च-आयामी संचालन (जैसे आव्यूह गुणन) समर्थित होते हैं। | ||
== | ==लैंग्वेज डिज़ाइन== | ||
पीडीएल एक वेक्टरकृत [[सरणी प्रोग्रामिंग]] | पीडीएल एक वेक्टरकृत [[सरणी प्रोग्रामिंग]] लैंग्वेज है: अभिव्यक्ति वाक्यविन्यास मानक गणितीय [[वेक्टर (ज्यामितीय)]] नोटेशन पर एक भिन्नता है, जिससे उपयोगकर्ता सरल अभिव्यक्तियों के साथ बड़े सरणी पर संयोजन और संचालन कर सके। इस संबंध में, पीडीएल [[एपीएल प्रोग्रामिंग भाषा|एपीएल प्रोग्रामिंग लैंग्वेज]] के नक्शेकदम पर चलता है, और इसकी तुलना [[MATLAB]] और [[इंटरैक्टिव डेटा भाषा|इंटरैक्टिव डेटा लैंग्वेज]] जैसी व्यावसायिक भाषाओं और अन्य मुफ्त भाषाओं जैसे [[NumPy]] और GNU Octave#Octave.2C लैंग्वेज से की गई है।<ref>{{Cite web|url=http://blogs.perl.org/users/lhermida/2011/03/hi-everyone-as-a-bioinformatician.html|title=Putting Perl Back on Top in the Fields of Scientific and Financial Computing}}</ref> MATLAB और IDL के विपरीत, PDL अनुक्रमण और वैश्वीकरण में महान लचीलेपन की अनुमति देता है: उदाहरण के लिए, यदि एक सबरूटीन सामान्य रूप से 2-डी [[मैट्रिक्स (गणित)|आव्यूह (गणित)]] सरणी पर काम करता है, तो इसे 3-डी [[डेटा क्यूब]] पास करने से सामान्यतः क्यूब की प्रत्येक 2-डी परत पर समान ऑपरेशन होगा।<ref>{{Cite web|url=http://pdl.perl.org/?docs=Threading&title=PDL::Threading|title=PDL online documentation (PDL::Threading section)}}</ref> | ||
पीडीएल पर्ल से कम से कम तीन | |||
पीडीएल पर्ल से कम से कम तीन मूलभूत प्रकार की प्रोग्राम संरचना उधार लेता है: [[अनिवार्य प्रोग्रामिंग]], [[कार्यात्मक प्रोग्रामिंग]], और [[पाइपलाइन प्रोग्रामिंग]] फॉर्म संयुक्त हो सकते हैं। सबरूटीन्स को या तो अंतर्निहित [[ ऑटो लोड | ऑटो लोड]] तंत्र के माध्यम से या सामान्य पर्ल मॉड्यूल तंत्र के माध्यम से लोड किया जा सकता है। | |||
==ग्राफिक्स== | ==ग्राफिक्स== | ||
[[Image:Pdl-plot.png|thumb|200px|right|पीडीएल का उपयोग करके एक प्लॉट तैयार किया गया]]पर्ल की [[गोंद भाषा]] जड़ों के अनुरूप, पीडीएल ग्राफिक्स और प्लॉटिंग समर्थन के लिए | [[Image:Pdl-plot.png|thumb|200px|right|पीडीएल का उपयोग करके एक प्लॉट तैयार किया गया]]पर्ल की [[गोंद भाषा|गोंद लैंग्वेज]] जड़ों के अनुरूप, पीडीएल ग्राफिक्स और प्लॉटिंग समर्थन के लिए अनेक अलग-अलग मॉड्यूल से उधार लेता है। [[NetPBM]] छवि फ़ाइल I/O प्रदान करता है (चूँकि एफआईटीएस मूल रूप से समर्थित है)। [[Gnuplot]], [[PLplot]], [[PGPLOT]], और [[प्राइमा (ग्राफिक्स सॉफ्टवेयर)]] मॉड्यूल 2-डी ग्राफिक्स और प्लॉटिंग अनुप्रयोगों के लिए समर्थित हैं, और Gnuplot और [[OpenGL]] 3-डी प्लॉटिंग और रेंडरिंग के लिए समर्थित हैं। | ||
== | ==इनपुट/आउटपुट== | ||
पीडीएल [[जेपीईजी]], [[ पोर्टेबल नेटवर्क ग्राफ़िक्स ]], [[ GIF ]], [[पोर्टेबल पिक्समैप]], [[एमपीईजी]], एफआईटीएस, [[नेटसीडीएफ]], जीआरआईबी, कच्ची बाइनरी फाइलें और सीमांकित एएससीआईआई तालिकाओं सहित | पीडीएल [[जेपीईजी]], [[ पोर्टेबल नेटवर्क ग्राफ़िक्स ]], [[ GIF ]], [[पोर्टेबल पिक्समैप]], [[एमपीईजी]], एफआईटीएस, [[नेटसीडीएफ]], जीआरआईबी, कच्ची बाइनरी फाइलें और सीमांकित एएससीआईआई तालिकाओं सहित अनेक संवृत डेटा प्रारूपों को पढ़ने और लिखने की सुविधाएं प्रदान करता है। पीडीएल प्रोग्रामर सैकड़ों मानक और विशिष्ट फ़ाइल स्वरूपों में डेटा को पढ़ने और लिखने के लिए [[सीपीएएन]] पर्ल इनपुट/आउटपुट लाइब्रेरी का उपयोग कर सकते हैं। | ||
==मशीन लर्निंग== | ==मशीन लर्निंग== | ||
पीडीएल का उपयोग मशीन लर्निंग के लिए किया जा सकता है। इसमें ऐसे मॉड्यूल | पीडीएल का उपयोग मशीन लर्निंग के लिए किया जा सकता है। इसमें ऐसे मॉड्यूल सम्मिलित हैं, जिनका उपयोग क्लासिक [[ k-मतलब क्लस्टरिंग | k-मीन क्लस्टरिंग]] या सामान्य और सामान्यीकृत रैखिक मॉडलिंग विधियों जैसे एनोवा, रैखिक रिग्रेशन, पीसीए और लॉजिस्टिक रिग्रेशन को करने के लिए किया जाता है। रिग्रेशन मॉडलिंग कार्यों के लिए पीडीएल उपयोग के उदाहरणों में शिक्षा प्राप्ति और माता-पिता की वंशावली के अंतर के बीच संबंध का मूल्यांकन करना सम्मिलित है,<ref name="pmid25734509">{{cite journal | vauthors = 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 | title = शैक्षिक प्राप्ति प्रवासन और वर्गीकरण संभोग के माध्यम से समरूपता के स्तर को प्रभावित करती है| journal = PLOS ONE | volume = 10 | issue = 3 | pages = e0118935 | date = Mar 2015 | pmid = 25734509 | pmc = 4347978 | doi = 10.1371/journal.pone.0118935 | bibcode = 2015PLoSO..1018935A | doi-access = free }}</ref> आरएनए-प्रोटीन इंटरैक्शन प्रोफाइल की तुलना जिसके लिए रिग्रेशन-आधारित सामान्यीकरण की आवश्यकता होती है<ref name="pmid24398258">{{cite journal | vauthors = Wang T, Xie Y, Xiao G | title = dCLIP: a computational approach for comparative CLIP-seq analyses | journal = Genome Biology | volume = 15 | issue = 1 | pages = R11 | date = Jan 2014 | pmid = 24398258 | pmc = 4054096 | doi = 10.1186/gb-2014-15-1-r11 }}</ref> और आकाशगंगाओं के स्पेक्ट्रा का विश्लेषण।<ref>{{cite journal | vauthors = 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 | title = Pipe3D, a pipeline to analyze Integral Field Spectroscopy Data: I. New fitting philosophy of FIT3D | journal = Revista Mexicana de Astronomía y Astrofísica | volume = 52 | pages = 21–53 | date = April 2016 | arxiv = 1509.08552 | bibcode = 2016RMxAA..52...21S }}</ref> | ||
==perldl== | ==perldl== | ||
पीडीएल की स्थापना | पीडीएल की स्थापना सामान्यतः एक इंटरैक्टिव [[ शैल (कंप्यूटिंग) ]] के साथ आती है जिसे Perldl के नाम से जाना जाता है, जिसका उपयोग उपयोगकर्ता को पर्ल प्रोग्राम फ़ाइल बनाने की आवश्यकता के बिना सरल गणना करने के लिए किया जा सकता है। Perldl का एक विशिष्ट सेशन कुछ इस प्रकार दिखाई देगा: | ||
<syntaxhighlight lang="perl"> | <syntaxhighlight lang="perl"> | ||
Line 46: | Line 47: | ||
] | ] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
शेल में उपयोग किए गए कमांड पर्ल स्टेटमेंट हैं जिनका उपयोग | शेल में उपयोग किए गए कमांड पर्ल स्टेटमेंट हैं, जिनका उपयोग <code>PDL</code> मॉड्यूल वाले किसी प्रोग्राम में किया जा सकता है। '''सम्मिलित है.''' <code>x</code> [[मैट्रिक्स गुणन|आव्यूह गुणन]] के लिए एक [[अतिभारित ऑपरेटर]] है, और अंतिम कमांड में <code>p</code> एक <code>print</code> के लिए एक शॉर्टकट है। | ||
==कार्यान्वयन== | ==कार्यान्वयन== | ||
पीडीएल का मूल C (प्रोग्रामिंग | पीडीएल का मूल C (प्रोग्रामिंग लैंग्वेज) में लिखा गया है। अधिकांश कार्यक्षमता पीपी में लिखी गई है, एक पीडीएल-विशिष्ट धातुभाषा जो सरल C स्निपेट्स के वेक्टराइजेशन को संभालती है और उन्हें पर्ल के [[एक्सएस (पर्ल)]] कंपाइलर के माध्यम से पर्ल होस्ट लैंग्वेज के साथ इंटरफेस करती है। कुछ मॉड्यूल सी/पीपी इंटरफ़ेस परत के साथ [[फोरट्रान]] में लिखे गए हैं। आपूर्ति किए गए अनेक फ़ंक्शन पीडीएल में ही लिखे गए हैं। पीपी उपयोगकर्ता को पीडीएल में C-लैंग्वेज एक्सटेंशन लिखने के लिए उपलब्ध है। एक इनलाइन मॉड्यूल (इनलाइन::पीडीएलपीपी) भी है, जो पीपी फ़ंक्शन परिभाषाओं को सीधे पर्ल स्क्रिप्ट में डालने की अनुमति देता है; प्रासंगिक कोड को निम्न-स्तरीय संकलित किया गया है और पर्ल सबरूटीन के रूप में उपलब्ध कराया गया है। | ||
पीडीएल एपीआई मूल पर्ल 5 ऑब्जेक्ट-ओरिएंटेड कार्यक्षमता का उपयोग करता है: पीडीएल एक नए प्रकार के पर्ल स्केलर ऑब्जेक्ट को परिभाषित करता है (जिसे पीडीएल या | पीडीएल एपीआई मूल पर्ल 5 ऑब्जेक्ट-ओरिएंटेड कार्यक्षमता का उपयोग करता है: पीडीएल एक नए प्रकार के पर्ल स्केलर ऑब्जेक्ट को परिभाषित करता है (जिसे पीडीएल या "एनडीएरे" कहा जाता है) जो पर्ल स्केलर के रूप में कार्य करता है, लेकिन इसमें पारंपरिक [[डेटा प्रकार]] ऐरे डेटा प्रकार के संख्यात्मक या करैक्टर मान सम्मिलित होते हैं। सभी मानक पर्ल ऑपरेटर अतिभारित हैं जिससे उन्हें पीडीएल ऑब्जेक्ट पर पारदर्शी रूप से उपयोग किया जा सके, और पीडीएल को सामान्य पर्ल स्केलर के साथ मिश्रित और मिलान किया जा सके। पीडीएल पर संचालन के लिए अनेक सौ ऑब्जेक्ट विधियां कोर मॉड्यूल द्वारा प्रदान की जाती हैं। | ||
==यह भी देखें== | ==यह भी देखें== |
Revision as of 22:44, 30 July 2023
Paradigm | Array |
---|---|
Developer | Karl Glazebrook, Jarle Brinchmann, Tuomas Lukka, and Christian Soeller |
पहली प्रस्तुति | 1996 |
Stable release | Script error: The module returned a nil value. It is supposed to return an export table.
/ Script error: The module returned a nil value. It is supposed to return an export table. |
ओएस | Cross-platform |
लाइसेंस | GNU General Public License, Artistic License |
वेबसाइट | pdl |
Influenced by | |
APL, IDL, Perl |
पर्ल डेटा लैंग्वेज (संक्षिप्त रूप में पीडीएल) पर्ल के लिए मुफ्त सॉफ्टवेयर ऐरे प्रोग्रामिंग एक्सटेंशन का एक सेट है। पीडीएल बड़ी ऐरे डेटा संरचना को सम्मिलित करने के लिए पर्ल में निर्मित डेटा संरचनाओं का विस्तार करता है, और उन ऐरे को वेक्टर ऑब्जेक्ट के रूप में हेरफेर करने के लिए कार्यक्षमता जोड़ता है। यह मूर्ति प्रोद्योगिकी , यंत्र अधिगम , भौतिक प्रणालियों के कंप्यूटर मॉडलिंग और ग्राफिकल प्लॉटिंग और प्रस्तुति के लिए उपकरण भी प्रदान करता है। सरल संचालन स्वचालित रूप से संपूर्ण सरणियों में वेक्टरकृत होते हैं, और उच्च-आयामी संचालन (जैसे आव्यूह गुणन) समर्थित होते हैं।
लैंग्वेज डिज़ाइन
पीडीएल एक वेक्टरकृत सरणी प्रोग्रामिंग लैंग्वेज है: अभिव्यक्ति वाक्यविन्यास मानक गणितीय वेक्टर (ज्यामितीय) नोटेशन पर एक भिन्नता है, जिससे उपयोगकर्ता सरल अभिव्यक्तियों के साथ बड़े सरणी पर संयोजन और संचालन कर सके। इस संबंध में, पीडीएल एपीएल प्रोग्रामिंग लैंग्वेज के नक्शेकदम पर चलता है, और इसकी तुलना MATLAB और इंटरैक्टिव डेटा लैंग्वेज जैसी व्यावसायिक भाषाओं और अन्य मुफ्त भाषाओं जैसे NumPy और GNU Octave#Octave.2C लैंग्वेज से की गई है।[1] MATLAB और IDL के विपरीत, PDL अनुक्रमण और वैश्वीकरण में महान लचीलेपन की अनुमति देता है: उदाहरण के लिए, यदि एक सबरूटीन सामान्य रूप से 2-डी आव्यूह (गणित) सरणी पर काम करता है, तो इसे 3-डी डेटा क्यूब पास करने से सामान्यतः क्यूब की प्रत्येक 2-डी परत पर समान ऑपरेशन होगा।[2]
पीडीएल पर्ल से कम से कम तीन मूलभूत प्रकार की प्रोग्राम संरचना उधार लेता है: अनिवार्य प्रोग्रामिंग, कार्यात्मक प्रोग्रामिंग, और पाइपलाइन प्रोग्रामिंग फॉर्म संयुक्त हो सकते हैं। सबरूटीन्स को या तो अंतर्निहित ऑटो लोड तंत्र के माध्यम से या सामान्य पर्ल मॉड्यूल तंत्र के माध्यम से लोड किया जा सकता है।
ग्राफिक्स
पर्ल की गोंद लैंग्वेज जड़ों के अनुरूप, पीडीएल ग्राफिक्स और प्लॉटिंग समर्थन के लिए अनेक अलग-अलग मॉड्यूल से उधार लेता है। NetPBM छवि फ़ाइल I/O प्रदान करता है (चूँकि एफआईटीएस मूल रूप से समर्थित है)। Gnuplot, PLplot, PGPLOT, और प्राइमा (ग्राफिक्स सॉफ्टवेयर) मॉड्यूल 2-डी ग्राफिक्स और प्लॉटिंग अनुप्रयोगों के लिए समर्थित हैं, और Gnuplot और OpenGL 3-डी प्लॉटिंग और रेंडरिंग के लिए समर्थित हैं।
इनपुट/आउटपुट
पीडीएल जेपीईजी, पोर्टेबल नेटवर्क ग्राफ़िक्स , GIF , पोर्टेबल पिक्समैप, एमपीईजी, एफआईटीएस, नेटसीडीएफ, जीआरआईबी, कच्ची बाइनरी फाइलें और सीमांकित एएससीआईआई तालिकाओं सहित अनेक संवृत डेटा प्रारूपों को पढ़ने और लिखने की सुविधाएं प्रदान करता है। पीडीएल प्रोग्रामर सैकड़ों मानक और विशिष्ट फ़ाइल स्वरूपों में डेटा को पढ़ने और लिखने के लिए सीपीएएन पर्ल इनपुट/आउटपुट लाइब्रेरी का उपयोग कर सकते हैं।
मशीन लर्निंग
पीडीएल का उपयोग मशीन लर्निंग के लिए किया जा सकता है। इसमें ऐसे मॉड्यूल सम्मिलित हैं, जिनका उपयोग क्लासिक k-मीन क्लस्टरिंग या सामान्य और सामान्यीकृत रैखिक मॉडलिंग विधियों जैसे एनोवा, रैखिक रिग्रेशन, पीसीए और लॉजिस्टिक रिग्रेशन को करने के लिए किया जाता है। रिग्रेशन मॉडलिंग कार्यों के लिए पीडीएल उपयोग के उदाहरणों में शिक्षा प्राप्ति और माता-पिता की वंशावली के अंतर के बीच संबंध का मूल्यांकन करना सम्मिलित है,[3] आरएनए-प्रोटीन इंटरैक्शन प्रोफाइल की तुलना जिसके लिए रिग्रेशन-आधारित सामान्यीकरण की आवश्यकता होती है[4] और आकाशगंगाओं के स्पेक्ट्रा का विश्लेषण।[5]
perldl
पीडीएल की स्थापना सामान्यतः एक इंटरैक्टिव शैल (कंप्यूटिंग) के साथ आती है जिसे Perldl के नाम से जाना जाता है, जिसका उपयोग उपयोगकर्ता को पर्ल प्रोग्राम फ़ाइल बनाने की आवश्यकता के बिना सरल गणना करने के लिए किया जा सकता है। Perldl का एक विशिष्ट सेशन कुछ इस प्रकार दिखाई देगा:
perldl> $x = pdl [[1, 2], [3, 4]];
perldl> $y = pdl [[5, 6, 7],[8, 9, 0]];
perldl> $z = $x x $y;
perldl> p $z;
[
[21 24 7]
[47 54 21]
]
शेल में उपयोग किए गए कमांड पर्ल स्टेटमेंट हैं, जिनका उपयोग PDL
मॉड्यूल वाले किसी प्रोग्राम में किया जा सकता है। सम्मिलित है. x
आव्यूह गुणन के लिए एक अतिभारित ऑपरेटर है, और अंतिम कमांड में p
एक print
के लिए एक शॉर्टकट है।
कार्यान्वयन
पीडीएल का मूल C (प्रोग्रामिंग लैंग्वेज) में लिखा गया है। अधिकांश कार्यक्षमता पीपी में लिखी गई है, एक पीडीएल-विशिष्ट धातुभाषा जो सरल C स्निपेट्स के वेक्टराइजेशन को संभालती है और उन्हें पर्ल के एक्सएस (पर्ल) कंपाइलर के माध्यम से पर्ल होस्ट लैंग्वेज के साथ इंटरफेस करती है। कुछ मॉड्यूल सी/पीपी इंटरफ़ेस परत के साथ फोरट्रान में लिखे गए हैं। आपूर्ति किए गए अनेक फ़ंक्शन पीडीएल में ही लिखे गए हैं। पीपी उपयोगकर्ता को पीडीएल में C-लैंग्वेज एक्सटेंशन लिखने के लिए उपलब्ध है। एक इनलाइन मॉड्यूल (इनलाइन::पीडीएलपीपी) भी है, जो पीपी फ़ंक्शन परिभाषाओं को सीधे पर्ल स्क्रिप्ट में डालने की अनुमति देता है; प्रासंगिक कोड को निम्न-स्तरीय संकलित किया गया है और पर्ल सबरूटीन के रूप में उपलब्ध कराया गया है।
पीडीएल एपीआई मूल पर्ल 5 ऑब्जेक्ट-ओरिएंटेड कार्यक्षमता का उपयोग करता है: पीडीएल एक नए प्रकार के पर्ल स्केलर ऑब्जेक्ट को परिभाषित करता है (जिसे पीडीएल या "एनडीएरे" कहा जाता है) जो पर्ल स्केलर के रूप में कार्य करता है, लेकिन इसमें पारंपरिक डेटा प्रकार ऐरे डेटा प्रकार के संख्यात्मक या करैक्टर मान सम्मिलित होते हैं। सभी मानक पर्ल ऑपरेटर अतिभारित हैं जिससे उन्हें पीडीएल ऑब्जेक्ट पर पारदर्शी रूप से उपयोग किया जा सके, और पीडीएल को सामान्य पर्ल स्केलर के साथ मिश्रित और मिलान किया जा सके। पीडीएल पर संचालन के लिए अनेक सौ ऑब्जेक्ट विधियां कोर मॉड्यूल द्वारा प्रदान की जाती हैं।
यह भी देखें
संदर्भ
- ↑ "Putting Perl Back on Top in the Fields of Scientific and Financial Computing".
- ↑ "PDL online documentation (PDL::Threading section)".
- ↑ 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). "शैक्षिक प्राप्ति प्रवासन और वर्गीकरण संभोग के माध्यम से समरूपता के स्तर को प्रभावित करती है". PLOS ONE. 10 (3): e0118935. Bibcode:2015PLoSO..1018935A. doi:10.1371/journal.pone.0118935. PMC 4347978. PMID 25734509.
- ↑ Wang T, Xie Y, Xiao G (Jan 2014). "dCLIP: a computational approach for comparative CLIP-seq analyses". Genome Biology. 15 (1): R11. doi:10.1186/gb-2014-15-1-r11. PMC 4054096. PMID 24398258.
- ↑ 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 FIT3D". Revista Mexicana de Astronomía y Astrofísica. 52: 21–53. arXiv:1509.08552. Bibcode:2016RMxAA..52...21S.