ภาษาอังกฤษอาหารฝรั่งเศสสเปน

ไอคอน Fav ของ OnWorks

PDL::Tipsp - ออนไลน์ในคลาวด์

เรียกใช้ PDL::Tipsp ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง PDL::Tipsp ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


PDL::Tips - เกร็ดเล็กเกร็ดน้อยของอาร์คานาที่มีประโยชน์ เกร็ดความรู้การเขียนโปรแกรมและอื่น ๆ

เรื่องย่อ


ใช้ PDL;

#อะไรก็เกิดขึ้นได้

DESCRIPTION


หน้านี้แสดงสำนวนที่เป็นประโยชน์ คำแนะนำที่เป็นประโยชน์ และเคล็ดลับในการใช้ Perl Data Language
v2.0

การช่วยเหลือ
ใช้ "ช่วยเหลือช่วยเหลือ" ภายใน เพิร์ล or pdl2 หรือใช้โปรแกรม "pdldoc" จากบรรทัดคำสั่ง
สำหรับการเข้าถึงเอกสาร PerlDL เวอร์ชัน HTML ของหน้าควรเป็น
ปัจจุบันใน HtmlDocs/PDL ไดเร็กทอรีของการกระจาย PDL เพื่อค้นหาไดเร็กทอรีนี้
ลองทำดังต่อไปนี้

pdl> foreach ( แผนที่{"$_/PDL/HtmlDocs"}@INC ) { p "$_\n" if -d $_ }

การจัดทำดัชนี สำนวน
รหัสต่อไปนี้ทำให้เวกเตอร์จำนวนมากเป็นปกติใน $a สิ่งนี้ใช้ได้โดยไม่คำนึงถึง
มิติของ $a

$a /= $a->ซัมโอเวอร์->ตัวแทนเชิด(0);

อะไร is จริง เกิดขึ้น?
หากคุณต้องการดูว่าโค้ดนี้ทำอะไรอยู่ ให้ลองใช้คำสั่ง

PDL::แกนหลัก::set_debugging(1);

บางแห่ง. สิ่งนี้แสดงข้อมูลการดีบักจำนวนมากสำหรับ PDL ไปยัง STDOUT แผนสำหรับ
ในอนาคตรวมถึงการทำให้สามารถเปลี่ยนเส้นทางผลลัพธ์และทำให้เป็นไปได้
เลือกข้อความที่มีความแม่นยำมากขึ้น

ข้อความจำนวนมากมาจาก "Basic/Core/pdlapi.c" และคุณสามารถดูที่มาเพื่อดู
เกิดอะไรขึ้น.

หากคุณมีเวลาเพิ่มเติมในการทำงานกับกลไกเหล่านี้ โปรดแจ้ง pdl-porters mailing
รายการ.

หน่วยความจำ เงินออม
หากคุณกำลังเรียกใช้บางสิ่งซ้ำๆ ซึ่งเลือกดัชนีบางตัวของพิดเดิ้ลขนาดใหญ่
กดไลก์

ในขณะที่(หนึ่ง) {
$inds = ที่ไหน($a>0);
$a = $a->ดัชนี($inds);
$b = $b->ดัชนี($inds);
func($b,$a);
}

หากคุณไม่ได้เขียนถึง $b จะเป็นการช่วยประหยัดหน่วยความจำได้มากในการเปลี่ยนเป็น

$b = $b->index($inds)->ตัด;

วิธีการใหม่ "ตัด" เป็นสาเหตุที่ทำให้ความสัมพันธ์ในการเขียนกลับถูกลืม มันเป็นเหมือน
คัดลอกเว้นแต่จะเปลี่ยน piddle เดิมและส่งคืน)

แน่นอน วิธีที่ดีที่สุดที่จะทำข้างต้นคือ

$inds = xvals ($a->long);
ในขณะที่(หนึ่ง) {
$inds0 = โดยที่($a>0);
$inds1 = $inds->index($inds)->แยก;
$a = $a0->ดัชนี($inds1);
$b = $b->index($inds1)->แยก;
func($b,$a);
}

ซึ่งไม่บันทึกอินสแตนซ์ชั่วคราวของ $a ทั้งหมดในหน่วยความจำ ดู "mandel.pl" ใน
ตัวอย่างไดเร็กทอรีย่อยการสาธิตของการแจกจ่าย PerlDL

PP ความเร็ว
หากคุณต้องการเขียนโค้ด PP ที่รวดเร็วจริงๆ สิ่งแรกที่คุณต้องทำคือต้องแน่ใจว่า
ที่คอมไพเลอร์ C ของคุณได้รับอนุญาตให้ทำการเพิ่มประสิทธิภาพที่จำเป็น

สิ่งนี้หมายความว่าคุณต้องยอมให้ตัวแปรต่างๆ เข้าไปใน
ลงทะเบียน:

วน (ก) %{
$a() += $COMP(foo_member) * $b()
%}

ขยายเป็น

สำหรับ (i=0; i<10000; i++) {
a[i] += __privtrans->foo_member * b[i];
}

เป็นสิ่งที่แย่ที่สุดที่คุณสามารถทำได้ เนื่องจากคอมไพเลอร์ C ของคุณไม่ได้รับอนุญาตให้ถือว่า "a"
ไม่ปิดบัง "foo_member" ซึ่งยับยั้งการสร้างเวคเตอร์อย่างสมบูรณ์ แทนที่จะทำ

ลอย foo = $COMP(foo_member);
วน (ก) %{
$a() += ฟู * $b();
%}

นี่ไม่ใช่ข้อจำกัดที่เกิดจาก PP แต่เกิดจากความหมายของ ANSI C แน่นอน เราทำสำเนาได้
struct เป็นตัวแปรท้องถิ่นและย้อนกลับ แต่นั่นอาจทำให้เกิดสิ่งแปลก ๆ ได้
บางครั้ง

มีปัญหาอื่น ๆ อีกมากมายในการจัดระเบียบลูป

ขณะนี้เรากำลังวางแผนที่จะให้ PP สามารถทำสิ่งต่าง ๆ ที่มีความกว้างคงที่เช่นเดียวกับทางกายภาพ
piddles (ซึ่งการวนรอบมิติแรกจะถูกกว่าเนื่องจากมีน้อยกว่า
การเพิ่มขึ้นที่แตกต่างกันซึ่งอาจสร้างความแตกต่างในเครื่องที่มีจำนวนเล็กน้อย
ทะเบียน)

ใช้ PDL::Tipsp ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad