مكتبة جنو العلمية

مكتبة جنو العلمية ( GSL ) هي مكتبة برمجية للحسابات العددية في الرياضيات التطبيقية والعلوم . كُتبت GSL بلغة C ، وتتوفر أغلفة برمجية للغات برمجة أخرى. تُعد GSL جزءًا من مشروع جنو [ 2 ] وتُوزع بموجب رخصة جنو العمومية العامة .

تاريخ المشروع

بدأ مشروع GSL في عام 1996 على يد الفيزيائيين مارك جالاسي وجيمس ثيلر من مختبر لوس ألاموس الوطني . [ 3 ] وكان هدفهم كتابة بديل حديث لمكتبات فورتران واسعة الانتشار ولكنها قديمة نوعًا ما ، مثل Netlib . [ 4 ] قاموا بتصميم المشروع بشكل عام وكتابة الوحدات الأولية؛ وبعد الانتهاء من ذلك، استقطبوا علماء آخرين للمساهمة.

تولى برايان غوف وجيرارد يونغمان "التطوير الشامل للمكتبة وتصميم وتنفيذ الوحدات الرئيسية". [ 3 ] ومن المساهمين الرئيسيين الآخرين جيم ديفيز ، وريد بريدورسكي، وإم. بوث، وإف. روسي. [ 3 ]

صدرت النسخة 1.0 عام 2001. وفي السنوات اللاحقة، لم تشهد المكتبة سوى توسع بطيء؛ وكما ورد في الوثائق، كان القائمون على صيانتها أكثر اهتمامًا بالاستقرار من إضافة وظائف جديدة. انتهى الإصدار الرئيسي 1 مع الإصدار 1.16 في يوليو 2013؛ وكان هذا هو النشاط العلني الوحيد خلال السنوات الثلاث 2012-2014.

استؤنف التطوير بقوة مع إصدار النسخة 2.0 في أكتوبر 2015، والتي تضمنت تصحيحات من المستخدمين. وصدرت أحدث نسخة، وهي 2.8، في مايو 2024.

مثال

يحسب برنامج المثال التالي قيمة دالة بيسل من النوع الأول والرتبة الصفرية للعدد 5: [ 5 ]

#include <stdio.h> #include <gsl/gsl_sf_bessel.h>int main ( void ) { double x = 5.0 ; double y = gsl_sf_bessel_J0 ( x ); printf ( "J0(%g) = %.18e \n " , x , y ); return 0 ; }

يجب ربط البرنامج النموذجي بمكتبة GSL عند تجميعه:

$ gcc $( gsl-config --cflags ) example.c $( gsl-config --libs )

يظهر الناتج أدناه، وينبغي أن يكون صحيحًا بدقة مضاعفة :

J0(5) = -1.775967713143382920e-01

سمات

توفر مكتبة البرامج تسهيلات لما يلي:

روابط لغات البرمجة

بما أن مكتبة GSL مكتوبة بلغة C، فمن السهل توفير أغلفة برمجية للغات برمجة أخرى. وتوجد هذه الأغلفة حاليًا لـ

دعم لغة C++

يمكن استخدام مكتبة GSL في فئات C++ ، ولكن ليس باستخدام مؤشرات إلى الدوال الأعضاء، لأن نوع مؤشر الدالة العضو يختلف عن نوع مؤشر الدالة . [ 24 ] بدلاً من ذلك، يجب استخدام مؤشرات إلى الدوال الثابتة. ومن الحلول الشائعة الأخرى استخدام دالة مُؤَثِّرة (functor) .

تتوفر أغلفة C++ لمكتبة GSL. [ 7 ] [ 8 ] [ 9 ] [ 10 ] لا يتم تحديث جميع هذه الأغلفة بانتظام. توفر هذه الأغلفة إمكانية الوصول إلى فئات المصفوفات والمتجهات دون الحاجة إلى استخدام واجهة GSL لتخصيص وتحرير الدوال . كما يدعم بعضها إنشاء مساحات عمل تعمل كفئات مؤشرات ذكية . وأخيرًا، يوجد دعم (محدود، اعتبارًا من أبريل 2020) يسمح للمستخدم بإنشاء فئات لتمثيل دالة مُعاملة كدالة مُؤثرة .

على الرغم من أنها ليست أغلفة بالمعنى الدقيق للكلمة، إلا أن هناك بعض فئات C++ [ 25 ] [ 26 ] التي تسمح لمستخدمي C++ باستخدام مكتبة Gnu العلمية مع ميزات التغليف.

انظر أيضاً

ملحوظات

  1. GPL-3.0-or-later منذ 2007-07-02.
  2. GPL-2.0-or-later من 1996-07-08 حتى 2007-07-02.

مراجع

  1. باتريك ألكين (25 مايو 2024). "إصدار GSL 2.8" . تم الاطلاع عليه بتاريخ 6 فبراير 2025 .
  2. "دليل برامج جنو الحرة" .
  3. 1 2 3 الصفحة الرئيسية لـ GSL .
  4. وثيقة تصميم GSL .
  5. استخدام المكتبة. برنامج نموذجي . وثائق GSL.
  6. روابط AMPL لمكتبة GNU العلمية مؤرشفة بتاريخ 2021-10-28 في Wayback Machine .
  7. 1 2 ccgsl: واجهة C++ لمكتبة GNU العلمية ؛
  8. 1 2 GSL-- أغلفة C++ لـ GSL مؤرشفة في 2015-01-29 في Wayback Machine ؛
  9. 1 2 GSLwrap: فئة تغليف C++ لمكتبة GNU العلمية ؛
  10. 1 2 gslcpp: مكتبة C++ حديثة تعتمد على ملفات الرأس فقط، وتغلف مكتبة GNU العلمية .
  11. FGSL - واجهة Fortran لمكتبة GNU العلمية .
  12. حزمة hmatrix-special، وهي واجهة للوظائف الخاصة بـ GSL .
  13. حزمة hmatrix-gsl، وهي واجهة وظيفية بحتة لعمليات حسابية عددية مختارة، تم تنفيذها داخليًا باستخدام GSL .
  14. إعدادات JavaCPP المسبقة لـ GSL .
  15. واجهة جوليا لـ GSL .
  16. GSLL، مكتبة جنو العلمية للغة ليسب .
  17. غلاف Nim لمكتبة GNU العلمية .
  18. gsl-ocaml: روابط OCaml مع GSL .
  19. واجهة بايثون لمكتبة جنو العلمية .
  20. RcppGSL: تكامل Rcpp مع متجهات ومصفوفات GNU GSL .
  21. gsl: غلاف لمكتبة جنو العلمية .
  22. rb-gsl: Ruby/GSL هي واجهة Ruby لمكتبة GNU العلمية، للحوسبة العددية باستخدام Ruby .
  23. rust-gsl: ربط Rust لمكتبة GSL (مكتبة GNU العلمية).
  24. مؤشرات إلى الدوال الأعضاء . مؤرشف بتاريخ 13-10-2004 في أرشيف الإنترنت (Wayback Machine) .
  25. مكتبة الحوسبة العلمية الموجهة للكائنات o2scl ؛
  26. يات .