Eigen یک کتابخانه الگوی C ++ برای جبر خطی است: ماتریس ، بردارها ، حلال های عددی و الگوریتم های مرتبط.

ساخت وبلاگ

doc

Eigen 3. 4. 0 منتشر شد!(18. 08. 2021)

Eigen 3. 4. 0 در 18 اوت 2021 منتشر شده است.

توجه: که 3. 4. x آخرین سری نسخه اصلی Eigen خواهد بود که از C ++ 03 پشتیبانی می کند. Master Branch پس از این نسخه پشتیبانی C ++ 03 را کاهش می دهد.

لطفاً برای لیستی از تغییرات ، صفحه انتشار را بررسی کنید.

doc

Eigen 3. 4-RC1 منتشر شد!(19. 04. 2021)

Eigen 3. 4-RC1 در 19 آوریل 2021 منتشر شده است.

بسته به میزان موارد گزارش شده ، 3. 4 در اواخر آوریل یا اوایل ماه مه آزاد می شود.

لطفاً برای لیستی از تغییرات ، صفحه انتشار را بررسی کنید.

doc

Eigen 3. 3. 9 منتشر شد!(04. 12. 2020)

Eigen 3. 3. 9 در 4 دسامبر 2020 منتشر شده است.

این یک نسخه تعمیر و نگهداری است که اشکالات جزئی و مشکلات کامپایل را برطرف می کند. برای اطلاعات بیشتر به ChangeLog نگاهی بیندازید.

doc

Eigen on Discord (16. 11. 2020)

به سرور Discord ما بپیوندید تا در مورد موضوعات مربوط به Eigen با سایر کاربران و توسعه دهندگان بحث کنید.

doc

Eigen 3. 3. 8 منتشر شد!(05. 10. 2020)

Eigen 3. 3. 8 در 5 اکتبر 2020 منتشر شده است.

این یک نسخه تعمیر و نگهداری است که اشکالات جزئی و مشکلات کامپایل را برطرف می کند. برای اطلاعات بیشتر به ChangeLog نگاهی بیندازید.

آن را دریافت کنید

آخرین نسخه پایدار Eigen 3. 4. 0 است. آن را از اینجا دریافت کنید: tar. bz2 ، tar. gz ، زیپ. changelog

آخرین نسخه 3. 3 نسخه Eigen 3. 3. 9 است. آن را از اینجا دریافت کنید: tar. bz2 ، tar. gz ، زیپ. changelog

آخرین نسخه 3. 2 Eigen 3. 2. 10 است. آن را از اینجا دریافت کنید: tar. bz2 ، tar. gz ، زیپ. changelog

کد منبع ناپایدار از استاد در آنجاست: TAR. BZ2 ، TAR. GZ ، ZIP.

برای بررسی مخزن Eigen با استفاده از GIT ، انجام دهید:

بررسی اجمالی

  • Eigen همه کاره است.
    • از تمام اندازه ماتریس ، از ماتریس های کوچک با اندازه ثابت گرفته تا ماتریس های متراکم خودسرانه و حتی ماتریس های پراکنده پشتیبانی می کند.
    • این پشتیبانی از کلیه انواع عددی استاندارد ، از جمله std :: پیچیده ، اعداد صحیح ، و به راحتی در مورد انواع عددی سفارشی قابل گسترش است.
    • این پشتیبانی از تجزیه های مختلف ماتریس و ویژگی های هندسه را پشتیبانی می کند.
    • اکوسیستم ماژول های پشتیبانی نشده بسیاری از ویژگی های تخصصی مانند بهینه سازی غیر خطی ، توابع ماتریس ، یک حل کننده چند جمله ای ، FFT و موارد دیگر را ارائه می دهد.
    • الگوهای بیان اجازه می دهد تا در صورت مناسب بودن ، موقت را از بین ببرد و ارزیابی تنبل را فعال کند.
    • بردار صریح برای SSE 2/3/4 ، AVX ، AVX2 ، FMA ، AVX512 ، ARM NEON (32 بیتی و 64 بیتی) ، PowerPC Altivec/VSX (32 بیتی و 64 بیتی) ، ZVECTOR (S390X/ZEC13) مجموعه دستورالعمل های SIMD ، و از 3. 4 MIPS MSA با بازگشت دلپذیر به کد غیر بردار.
    • ماتریس های با اندازه ثابت کاملاً بهینه شده اند: از تخصیص حافظه پویا جلوگیری می شود ، و حلقه ها در صورت منطقی بدون کنترل نیستند.
    • برای ماتریس های بزرگ ، توجه ویژه ای به دوست داشتن حافظه پنهان می شود.
    • الگوریتم ها با دقت برای قابلیت اطمینان انتخاب می شوند. بازرگانی قابلیت اطمینان به وضوح مستند است و از نظر بسیار مناسب در دسترس است.
    • Eigen کاملاً از طریق مجموعه تست خود (بیش از 500 قابل اجرا) ، مجموعه تست استاندارد Blas و بخش هایی از مجموعه تست لاپاک آزمایش می شود.
    • API به لطف الگوهای بیان ، بسیار تمیز و بیانی است در حالی که احساس طبیعی برای برنامه نویسان C ++ می شود.
    • اجرای یک الگوریتم در بالای Eigen فقط کپی کردن شبه کد است.

    مستندات

    • مستندات Eigen 3: این شامل یک راهنمای شروع ، یک آموزش طولانی ، یک مرجع سریع و صفحه در مورد انتقال از Eigen 2 به Eigen 3 است.
    • مستندات شعبه توسعه ایژن
    • مستندات Eigen 2 (قدیمی): این شامل آموزش Eigen 2 است.
    • سؤالات متداول (سوالات متداول)
    • ارائه و گفتگو

    الزامات

    Eigen هیچ وابستگی دیگری غیر از کتابخانه استاندارد C ++ ندارد.

    ما از سیستم ساخت Cmake استفاده می کنیم ، اما فقط برای ساخت مستندات و آزمونهای واحد و به صورت خودکار نصب. اگر فقط می خواهید از Eigen استفاده کنید ، می توانید بلافاصله از پرونده های هدر استفاده کنید. هیچ کتابخانه باینری برای پیوند دادن به آن وجود ندارد ، و هیچ پرونده هدر پیکربندی شده وجود ندارد. Eigen یک کتابخانه الگوی خالص است که در هدرها تعریف شده است.

    مجوز

    Eigen نرم افزار رایگان است. با شروع از نسخه 3. 1. 1 ، تحت MPL2 مجوز دارد که یک مجوز ساده COPYLEFT ضعیف است. به سؤالات متداول در مورد MPL2 در سؤالات متداول MPL2 پاسخ داده می شود.

    نسخه های اولیه تحت LGPL3+مجوز گرفتند.

    توجه داشته باشید که در حال حاضر ، چند ویژگی به کد شخص ثالث دارای مجوز تحت LGPL است: construstruined_cg. چنین ویژگی هایی را می توان با تدوین با نماد پیش پردازنده EIGEN_MPL2_ONLY تعریف شده به صراحت غیرفعال کرد. علاوه بر این ، Eigen کلاس های رابط را برای کتابخانه های مختلف شخص ثالث (معمولاً با نام هدر قابل تشخیص است) ارائه می دهد. البته شما باید هنگام استفاده از آنها به مجوز کتابخانه به اصطلاح توجه داشته باشید.

    تقریباً هر نرم افزاری ممکن است از Eigen استفاده کند. به عنوان مثال ، نرم افزار منبع بسته ممکن است بدون نیاز به فاش کردن کد منبع خود ، از Eigen استفاده کند. بسیاری از پروژه های نرم افزاری اختصاصی و منبع بسته در حال حاضر از Eigen و همچنین بسیاری از پروژه های دارای مجوز BSD استفاده می کنند.

    برای اطلاعات بیشتر به MPL2 متداول مراجعه کنید و در صورت داشتن هر گونه سؤال از تماس با ما دریغ نکنید.

    پشتیبانی کامپایلر

    Eigen استاندارد C ++ 98 است و بنابراین باید از نظر تئوری با هر کامپایلر سازگار سازگار باشد. هر زمان که از برخی از ویژگی های غیر استاندارد استفاده می کنیم ، اختیاری است و می تواند غیرفعال شود.

    Eigen با موفقیت با کامپایلرهای زیر مورد استفاده قرار می گیرد:

    • GCC ، نسخه 4. 8 و جدیدتر. نسخه های قدیمی تر GCC نیز ممکن است کار کنند اما دیگر مورد آزمایش قرار نمی گیرند.
    • MSVC (ویژوال استودیو) ، 2012 و جدیدتر. توجه داشته باشید که فعال کردن Intellisense (/FR Flag) شناخته شده است که برخی از خطاهای تدوین داخلی را ایجاد می کند. نسخه قدیمی 3. 2 Eigen از MSVC 2010 پشتیبانی می کند ، و نسخه 3. 1 از MSVC 2008 پشتیبانی می کند.
    • کامپایلر Intel C ++. فعال کردن-inline-forceinlineگزینه بسیار توصیه می شود.
    • LLVM/CLANG ++ ، نسخه 3. 4 و جدیدتر.(نسخه 2. 8 استفاده شده برای کار خوب است ، اما با نسخه های به روز Eigen آزمایش نمی شود)
    • Xcode 7 و جدیدتر. بر اساس LLVM/Clang.
    • MINGW ، نسخه های اخیر. بر اساس GCC.
    • کامپایلر QCC QNX.

    با توجه به عملکرد ، Eigen بر اساس GCC یا LLVM/CLANG بهترین کار را با کامپایلرها انجام می دهد. برای برخی از مسائل تلفیقی شناخته شده به این صفحه مراجعه کنید.

    دریافت پشتیبانی

    با استفاده از Eigen به کمک نیاز دارید؟این را امتحان کن:

    • برای کمک به شما ، StackOverflow بهترین منبع شماست. همچنین می توانید در بایگانی انجمن جستجو کنید.
    • آیا می خواهید با توسعه دهندگان چیزی صحبت کنید؟از لیست پستی ما استفاده کنید.
    • آیا می خواهید یک گپ غیر رسمی در مورد Eigen داشته باشید؟از سرور Discord ما استفاده کنید.

    گزارش های اشکال

    برای گزارش های اشکال و درخواست های ویژگی ، لطفاً از Tracker Issure در GitLab استفاده کنید.

    لیست پستی

    آدرس: eigen@lists. tuxfamily.org

    • برای مشترک شدن ، ارسال نامه ای با موضوع مشترک در Eigen-request@lists. tuxfamily.org ارسال کنید
    • برای لغو اشتراک ، ارسال نامه ای با موضوع لغو اشتراک به eigen- request@lists. tuxfamily.org ارسال کنید

    در هر دو مورد ، شما یک نامه تأیید دریافت خواهید کرد که باید به آن پاسخ دهید. اگر مشکلی دارید ، لطفاً برای کمک به آدرس Eigen-Core-Team بپرسید.

    از لیست پستی Eigen می توان برای بحث در مورد موضوعات عمومی توسعه Eigen استفاده کرد. سؤالات کاربر نهایی اغلب در مورد استفاده از سرور Discord یا Forum Users ما بهتر سؤال می شود. توسعه ویژگی های خاص به بهترین وجه در مورد ردیاب شماره ما در GitLab ردیابی و مورد بحث قرار می گیرد.

    این لیست پستی عمومی است و دارای بایگانی عمومی است.

    مهم: قبل از ارسال باید مشترک شوید. با عرض پوزش ، این تنها راه ما برای جلوگیری از هرزنامه است.

    نکته مهم: پس از ارسال درخواست اشتراک خود ، نامه الکترونیکی تأیید دریافت خواهید کرد. پوشه هرزنامه خود را بررسی کنید ، زیرا این ایمیل های تأیید اغلب به صورت هرزنامه فیلتر می شوند!

    همچنین یک لیست پستی خصوصی وجود دارد که فقط در صورتی که می خواهید برای چند توسعه دهنده اصلی به صورت خصوصی بنویسید (توسط Gaël ، Christoph ، Rasmus ، Antonio ، David و Constantino خوانده می شود). آدرس در همان سرور لیستی از لیست پستی Eigen است. نیازی به مشترک شدن نیست (در واقع ، اشتراک بسته است). برای کلیه بحث های توسعه Eigen ، به جای آن از لیست پستی عمومی یا ردیاب شماره در GitLab استفاده کنید.

    سرور اختلاف نظر

    همه از همه استقبال می کنند تا در مورد موضوعات مرتبط با ایگن صحبت کنند یا فقط گپ بزنند. اشکالات هنوز هم باید در مورد ردیاب موضوع در GitLab گزارش شود و بحث های رسمی باید در لیست پستی اتفاق بیفتد. Discord مکانی ایده آل برای درخواست کمک از سایر کاربران و توسعه دهندگان است.

    کمک به ایگن

    ایگن توسط داوطلبان نوشته و نگهداری می شود. شما می توانید از راه های مختلفی برای کمک به شما کمک کنید: به کاربران جدید پشتیبانی کنید ، مستندات را بنویسید و بهبود بخشید ، به اشکالات و سایر موضوعات موجود در ردیاب شماره در GitLab ، بحث در مورد طراحی و API ، اجرای آزمون و کد نوشتن کمک کنید. برای شروع کار ، به صفحه ما در مورد مشارکت در Eigen مراجعه کنید.

    پروژه هایی با استفاده از Eigen

    با خیال راحت خود را اضافه کنید! اگر به ویکی دسترسی ندارید یا از اهمیت پروژه خود مطمئن نیستید ، در لیست #Mailing سؤال کنید.

    پسوندها ، محاسبات عددی

    • TensorFlow Google یک کتابخانه نرم افزار منبع باز برای اطلاعات دستگاه است
    • Google's Ceres Solver یک کتابخانه C ++ قابل حمل است که امکان مدل سازی و حل مشکلات بزرگ مربع های پیچیده و پیچیده بزرگ را فراهم می کند.
    • ابزار Miplold Toolkit MTK مکانیسم های آسان را برای فعال کردن الگوریتم های دلخواه برای کار کردن بر روی منیفولدها فراهم می کند. همچنین یک حل کننده حداقل مربعات پراکنده (SLOM) و یک فیلتر کالمن بدون فشار (UKFOM) را فراهم می کند.
    • IFOPT یک رابط C ++ مبتنی بر Eigen مدرن ، سبک و دارایی است.
    • CPNumericalSolvers یک کتابخانه با هدر سبک برای بهینه سازی غیر خطی از جمله حل کننده های مختلف است: CG ، L-BGFS-B ، CMAES ، Nelder-Mead.
    • GTSAM یک کتابخانه است که با استفاده از نمودارهای فاکتور و شبکه های Bayes ، صافی و نقشه برداری (SAM) را در روباتیک و بینایی اجرا می کند.
    • G2O یک چارچوب منبع باز C ++ برای بهینه سازی مشکلات حداقل مربعات غیرخطی مبتنی بر نمودار است.
    • REDSVD یک کتابخانه تجزیه ارزش منحصر به فرد برای ماتریس های پراکنده یا بسیار بزرگ است.
    • TrustOptim یک حل کننده غیر خطی مبتنی بر منطقه است که از Hessians پراکنده پشتیبانی می کند (اجرای C ++ با اتصال R).
    • Shogun: یک جعبه ابزار یادگیری ماشین در مقیاس بزرگ.
    • Stan: یک بسته آماری مبتنی بر Eigen که شامل اجرای تمایز خودکار حالت معکوس است.
    • توقف ، کتابخانه بهینه سازی تصادفی با هدف ارائه ابزارهایی در C ++ برای حل برخی از مشکلات بهینه سازی تصادفی که در امور مالی یا صنعت وجود دارد.
    • نلسون یک محیط محاسباتی باز برای کاربردهای مهندسی و علمی با استفاده از کتابخانه های مدرن C/C ++ (Boost ، Eigen ، FFTW ، ...) و دیگران از کتابخانه های عددی هنر.(GPL2)
    • Eigenlab یک کتابخانه تنها برای تجزیه و ارزیابی عبارات کار بر روی ماتریس های Eigen است.
    • Spafedte A کتابخانه C ++ برای تفکیک گالرکین ناپیوسته در مشهای عمومی.
    • Biicode A C و C ++ مدیر وابستگی که #محبوب ترین و مفیدترین C/C ++ LIBS و چارچوب ها را نشان می دهد.
    • AKSDA CERTH: یک روش کاهش ابعاد GPU و طبقه بندی برای داده های با ابعاد بالا.
    • طیف ها مخفف ابزار محاسبات مقادیر ویژه مقادیر به عنوان یک آرپا طراحی شده است. این یک کتابخانه C ++ فقط هدر برای مشکلات ویژه ویژه در مقیاس بزرگ است که در بالای Eigen ساخته شده است.
    • Predice یک کتابخانه اتصال برای شبیه سازی چند فیزیک تقسیم شده است ، از جمله ، اما محدود به تعامل سیال ساختار و شبیه سازی انتقال حرارت کونژوگه نیست. این پشتیبانی از OpenFoam ، Calculix ، SU2 و چندین حل کننده مشهور و همچنین در خانه پشتیبانی می کند. این نرم افزار رایگان/منبع باز است و کد آن در GitHub تحت مجوز LGPL3 در دسترس است. پیوند به کد منبع و مستندات
    • بسته RCPPeigen اتصال و موارد دیگر را برای R. فراهم می کند
    • Minieigen تقویت کوچک است :: بسته بندی پایتون برای کلاسهای اصلی Eigen (بردارهای متراکم و به اندازه پویا ، ماتریس ها ، جعبه های تراز شده ، کواترنیون ها ؛ با مقیاس های عدد صحیح ، شناور و پیچیده) از جمله اپراتورها و زیر مجموعه روشهای API Eigen.
    • Eigency یک رابط Cython بین آرایه های Numpy و کلاس های ماتریس/آرایه کتابخانه Eigen C ++ است.
    • Sparray: یک اتصال پایتون از ماژول پراکنده - مرحله آلفا.
    • Ocamleigen ، یک رابط OCAML نازک به کتابخانه Eigen 3 C ++.
    • Haskell-Eigen الزاماتی را برای زبان Haskell ارائه می دهد.
    • Jeigen ، یک بسته بندی جاوا برای Eigen.
    • Eigen4autoit ، بسته بندی برای زبان اسکریپت Autoit.
    • Eigen-Lua ، یک بسته بندی Lua در اطراف بخش هایی از کتابخانه عددی Eigen.
    • Eigenpy: اتصال کارآمد بین Numpy و Eigen با استفاده از Boost. python با پشتیبانی از ماژول هندسه
    • Ginestra ، یک شبیه ساز دستگاه نیمه هادی با تمرکز بر روی مواد و رابط های دی الکتریک پیشرفته.
    • G+SMO ، یک کتابخانه منبع باز برای طراحی هندسی و شبیه سازی عددی با آنالیز ایزوژومتریک.
    • Flexiblesusy ، یک ژنراتور طیف که توده های ذرات ابتدایی را محاسبه می کند.
    • آزمایش اطلس در LHC (Collider بزرگ هادرون) در CERN از Eigen استفاده می کند ، همانطور که در این مقاله گزارش شده است ، و خاطرنشان می کند: "Eigen انتخاب شده است زیرا بزرگترین پیشرفت عملکرد را برای موارد استفاده اطلس از گزینه های مورد بررسی ارائه می دهد."
    • تلسکوپ Synoptic Survey بزرگ (وب سایت ؛ TRAC) یک پروژه برای ساخت دوربین 3. 2 مپی در یک تلسکوپ 8. 4 متر است و کل آسمان قابل مشاهده را هر سه روز یکبار بررسی می کند.
    • GNU Data Language ، یک مفسر GPL از کدهای نحوی IDL.
    • Avogadro ، یک ویرایشگر مولکولی پیشرفته OpenSource.
    • برنامه تجسم نجومی سه بعدی Celestia اکنون از Eigen برای همه محاسبه مداری و هندسی استفاده می کند.
    • YADE ، سکو برای مدل های ذرات پویا ، از Eigen برای محاسبات هندسی استفاده می کند (از بسته Wildmagic تغییر یافته است)
    • Slangtng ، مجموعه برنامه ای برای تجزیه و تحلیل عددی ، جبر خطی ، آمار پیشرفته ، FEM ، دینامیک ساختاری ، تجسم داده ها و غیره.
    • کلیپ ، یک برنامه OpenSource برای جهت گیری قرار گرفتن در معرض Laue.
    • جعبه ابزار محاسبات چند برابر برای MATLAB از Eigen به عنوان کتابخانه اصلی برای محاسبات ماتریس استفاده می کند.
    • Pteros ، یک کتابخانه C ++ برای مدل سازی مولکولی.
    • دکمه های دکمه ای ، ابزاری برای مونتاژ متن ، بیان دیفرانسیل و تنظیم دیفرانسیل برای توالی RNA.
    • VORTEXJE: یک کتابخانه GPL برای شبیه سازی اجرای روش پانل منبع-Doublet.
    • WOO (DEM) ، نرم افزار دینامیک ذرات (DEM ، FEM) ؛Eigen با استفاده از Minieigen در پایتون پیچیده شد.
    • Nimble ، سیستمی برای برنامه نویسی الگوریتم های آماری مانند Markov Chain Monte Carlo از R. Nimble شامل یک کامپایلر برای زیر مجموعه R تا C ++ است که از Eigen استفاده می کند.
    • Enigma یک کتابخانه عددی چند منظوره است که از Eigen استفاده می کند.
    • IMSTK یک ابزار نرم افزاری منبع باز است که در C ++ نوشته شده است که به نمونه سازی سریع شبیه سازی های جراحی چند جانبه تعاملی کمک می کند.
    • MBSolve یک ابزار حل کننده منبع باز برای معادلات Maxwell-Bloch است که برای مدل سازی تعامل ماده نور در اپتیک غیرخطی استفاده می شود.
    • Spin-Scenario ، یک محیط اسکریپت انعطاف پذیر برای شبیه سازی رزونانس مغناطیسی واقع گرایانه (NMR/MRI).
    • Quantum ++ یک کتابخانه محاسبات کوانتومی با هدف کلی C ++ است که فقط از پرونده های هدر الگو تشکیل شده است.
    • السا ، یک چارچوب زیبا برای بازسازی توموگرافی.
    • ترک ، مجموعه ای از برنامه ها برای پردازش داده های کمی MRI.

    رباتیک و مهندسی

    • شرکت ربات Yujin از Eigen برای ناوبری و کنترل بازو روبات های نسل بعدی خود استفاده می کند.(از Blitz ، Ublas و TVMet تغییر یافته است)
    • سیستم عامل رباتیک (ROS) که توسط Willow Garage ساخته شده است.
    • Openahrs منبع باز IMU / AHRS
    • Darmstadt Dribblers Team Robot Sumnoid Team و تیم Rabot Rabot Darmstadt از Eigen برای ناوبری و مدل سازی جهان استفاده می کند.
    • ابزار برنامه نویسی ربات موبایل (MRPT) ، مجموعه ای از کتابخانه ها برای SLAM ، محلی سازی و دید رایانه ، به Eigen منتقل شد (از کلاس های ریاضی ساخته شده در خانه).
    • RBDL: یک کتابخانه C ++ برای پویایی بدن سفت و سخت.
    • RL یک کتابخانه C ++ خود برای سینماتیک ربات ، برنامه ریزی و کنترل.
    • BTK یک ابزار بیومکانیکی است که تحت BSD دارای مجوز است که هدف اصلی آن پیشنهاد مجموعه ای از ابزارها برای تجزیه و تحلیل حرکت بدن انسان است که مستقل از هر سیستم دستیابی است. این اتصالات را برای Matlab/Octave و Python و یک نرم افزار GUI به نام Mokka برای تجسم/تجزیه و تحلیل داده های ضبط حرکت 3D/2D پیشنهاد می کند.
    • LibPointMatcher یک کتابخانه "نزدیکترین نقطه" برای نقشه برداری سه بعدی در روباتیک است.
    • Roboptim یک کتابخانه مدرن و منبع باز ، C ++ برای بهینه سازی عددی است که برای روباتیک اعمال می شود.
    • Towr یک کتابخانه C ++ با وزن و قابل گسترش برای بهینه سازی مسیر برای روبات های پا است.
    • پینوکیو: یک کتابخانه دینامیک بدنه سفت و سخت سریع و کارآمد
    • برنامه ریز مسیر Humanoid: یک نرم افزار برای برنامه ریزی حرکت و دستکاری
    • MIRA یک چارچوب متقاطع است که در C ++ نوشته شده است که یک واسطه برای توسعه برنامه های پیچیده روباتیک ، که از ماژول های نرم افزاری توزیع شده تشکیل شده است ، فراهم می کند.

    گرافیک رایانه ، هندسه ، تجسم

    • کتابخانه الگوریتم های هندسه محاسباتی (CGAL) ، یک تلاش مشترک برای توسعه یک کتابخانه نرم افزاری قوی ، آسان و کارآمد C ++ ساختار داده های هندسی و الگوریتم ها.
    • کتابخانه Cloud Cloud (PCL) ، در مقیاس بزرگ ، دارای مجوز BSD ، پروژه باز برای پردازش Cloud Point. از ایگن به عنوان پس زمینه ریاضی خود استفاده می کند.
    • Vcglib ، یک کتابخانه الگوی OpenSource C ++ برای دستکاری و پردازش مثلث و مشهای چهار ضلعی.(از کلاس های ریاضی ساخته شده از خانه تغییر کرده است)
    • Meshlab ، یک نرم افزار OpenSource برای پردازش و ویرایش مش های مثلثی سه بعدی بدون ساختار و ابر نقطه.(از کلاس های ریاضی VCGLIB تغییر یافته است)
    • EOS ، یک کتابخانه متناسب با مدل صورت سه بعدی Morphable Model در C ++ 11/14 مدرن.
    • مجموعه ابزار توپولوژی (TTK) ، یک کتابخانه منبع باز و مجموعه نرم افزار برای تجزیه و تحلیل داده های توپولوژیکی در تجسم علمی.
    • Theia ، یک ساختار OpenSource C ++ از کتابخانه حرکت متناسب با محققان ، BSD دارای مجوز.
    • libmv ، یک ساختار OpenSource از کتابخانه حرکت.(از Flens تغییر یافته است)
    • OpenMVG ، یک کتابخانه ساده برای هندسه چند منظره.
    • مترونوم ، یک موتور ذخیره سازی/نمودار متریک ساده با استفاده از Eigen برای حداقل مربعات SVD و ادغام داده ها
    • Piccante ، یک کتابخانه تصویربرداری C ++ برای پردازش دامنه پویا بالا (HDR) طراحی شده است.
    • Libigl یک کتابخانه پردازش هندسه C ++ ساده با عملکرد گسترده است.
    • تقریبی یک کتابخانه کوچک برای محاسبه جعبه های محدود کننده تقریبی سریع از ابرهای نقطه سه بعدی است.
    • Madplotlib ترسیم نمودارهای 2D را در QT از داده های ایجاد شده توسط Eigen :: Arrayxf آسانتر می کند.
    • 3DF Zephyr یک فتوگرامتری تجاری و نرم افزار مدل سازی سه بعدی است که توسط 3Dflow SRL ساخته شده است

    برنامه های همراه

    • Layar ، یک برنامه واقعیت افزوده برای آیفون و اندروید.
    • Red Sword Studios ، سازنده گرادیان بازی های آیفون ، قلعه لونا ، محرک و درخشش ، از Eigen به طور گسترده استفاده می کند. چرا در صورت وجود Eigen ، کد ماتریس/بردار/تحول خود را می چرخانید؟
    • whirlyglobe-maply یک ابزار نمایشگر زمین جغرافیایی منبع باز برای iOS و Android. این هم یک کره تعاملی سه بعدی و هم یک نقشه 2D (لغزنده) را پیاده سازی می کند

    kde (منشأ ما!)

    • مرحله ، یک شبیه ساز فیزیک آموزشی.
    • برگه های Calligra ، ماژول صفحه گسترده مجموعه دفتر KDE از Eigen برای توابع ماتریس مانند Minverse ، MMult ، Mdeterm استفاده می کند.
    • Krita ، یک برنامه نقاشی حرفه ای رایگان و باز
    • کالزیوم به طور غیر مستقیم از طریق کتابخانه فوق الذکر Avogadro استفاده می کند.
    • افزونه تصاویر پس زمینه Mandelbrot ، برخی از صفحه نمایش ، Kgllib ، SolidKreator و غیره.

    اگر از برخی از پروژه های جالب با استفاده از Eigen آگاه هستید ، لطفاً برای ما پیام (از جمله پیوند و توضیحات کوتاه) برای ما ارسال کنید یا مستقیماً این صفحه ویکی را ویرایش کنید!

    وام

    پروژه Eigen توسط Benoît Jacob (بنیانگذار) و Gale Gueebaud (گورو) آغاز شد. بسیاری از افراد دیگر از آن زمان به استعدادهای خود برای کمک به موفقیت در Eigen کمک کرده اند. در اینجا یک لیست الفبایی وجود دارد: (توجه داشته باشید به مشارکت کنندگان: خودتان را اضافه کنید!)

     

    فیلیپ اوری اشکال را برطرف کرده و عملکرد را به ماژول Autodiff اضافه کنید
    ابراهیم باچراخ توابع اضافه شده برای cwise min/max با مقیاس
    سباستین بارتلی igen_initialize_matrices_by_nan را رفع کنید
    کارلوس بکر برخی از صفحات آموزش را نوشت
    دیوید بنیامین آثار هنری: جغدها
    سیریل برگر خطای را در منطق اسکریپت نصب برطرف کنید
    برس بسیاری از رفع (هشدارها و خطاهای تلفیقی)
    خوزه لوئیس بلانکو اصلاح برای MSVC و AMD64 ، تصحیح در اسناد
    مارک Borgerding ماژول FFT
    Romain Bossart به روزرسانی به حل کننده های پراکنده
    کلجا بریکس اسناد اضافه شده به ماژول خانه دار ، رفع بسته بندی Arpack ، Kroneckerproduct و GMRES
    گوتیر برون شروع با اجرای SVD تقسیم و تسخیر
    گابریل بووندونو محصول متقاطع Vector2d
    فیلیپ بنتگنباخ رفع اشکال هنگام تمایز یک اسپلین یک بعدی
    توماس کاپریکلی مهاجرت به بهینه سازی جیوه ، غیرخطی و تمایز عددی ، کرون-کار برای به روزرسانی DOX آنلاین
    نیکلاس کارا شروع با اجرای SVD تقسیم و تسخیر
    ژان سچاتو شروع با اجرای SVD تقسیم و تسخیر
    Vladimir Chalupecky رفع Cmake
    بنیامین کرتین رفع اشکال برای چند جمله ای (چند جمله ای خطی) ، انواع مختلف
    اندرو کولز رفع (از جمله خطای تلفیقی)
    جف "Complexzeros" درون یابی spline با مشتقات
    اورتون کنستانتینو پیشرفت های عملکرد عمومی برای PowerPC
    مارتون دانوسی رفع تدوین MSVC ، پشتیبانی از نئون ARM با CLANG 3. 0 و LLVM-GCC
    جف دین برای آرگومان های کوچک در ریشه مربع بردار درست کنید
    جورج درنخان رفع Cmake و STL
    مسیحی Ehrlicher رفع ترکیب MSVC
    مارتینیو فرناندز پشتیبانی از تخصیص داده شده ما را از C ++ 11 پشتیبانی کنید
    دانیل گومز فرو پیشرفت در محصول پراکنده و ماتریس
    روهیت گارگ محصولات کواترنیون و متقاطع بردار ، محصول عدد صحیح بهبود یافته
    ماتیو گوتیر quateionmap و پیشرفت های مرتبط
    آنتون گلمکی Visual Studio 2008 و GCC 4. 6 رفع تدوین
    استوارت گلاسر از تخصیص در تجزیه LU جلوگیری کنید
    مارک گلیس C ++ 11 مسائل مربوط به تلفیق (برای لفظات کافی)
    فردریک گوسلین فیلتر برای پرونده های پنهان در cmake را بهبود بخشید
    کریستوف گرونینگر پشتیبانی Superlu 5 را اضافه کنید
    گیل گونباود توسعه دهنده
    فیلیپ هاملین اجازه دهید پروژه Cmake در یک پروژه دیگر گنجانده شود
    مارکوس دی. هانول پیشرفت های cmake. مارکوس یک توسعه دهنده در Kitware است!
    دیوید هارمون ماژول پشتیبانی Arpack
    چن-پانگ او بسیاری از پیشرفت های ماتریس عملکرد و ماژول های kroneckerproduct
    هاوکه هیبل توابع ماتریس گسترده ، سازگاری STL ، اسپلین ها ، بهبود cmake و موارد دیگر.
    کریستوف هرتزبرگ quateions ، شیفت برای Cholmod ، رفع اشکال ، بسیاری از پشتیبانی کاربر در انجمن ها و IRC
    پاول هولوبرودکو پشتیبانی چند دقیق با MPFR C ++ ، رفع اشکال برای انواع مقیاس غیر استاندارد
    تیم مقدس پیشرفت در آموزش ، به روزرسانی LDLT و Downdate
    این کشور بازگشت به کتابخانه هسته ریاضی اینتل (MKL)
    توری ریشه مربع برای اعداد پیچیده ، رفع خطاهای کامپایل و اشتباه در اسناد
    Benoît Jacob توسعه دهنده
    برام دو جونگ بهبود به مجموعه معیار
    کیبوم کیم اجرای * = / = * / عملیات برای VectorWiseOP
    موریتز کلاملر از نشت حافظه هنگامی که سازنده نوع تعریف شده توسط کاربر استثنا می کند ، خودداری کنید
    کلاله کوهلر پیشرفت در Fortran و FFTW در Cmake
    الکسی کورپانف کلاس Realqz را اضافه کنید
    ایگور کریونکو هنگام استفاده از مقیاس های غیر استاندارد ، ثابت را به درستی بازی کنید
    ماریجن رفع Cmake
    Abhijit Kundu خطاهای تلفیقی را در نسخه های نمایشی OpenGL رفع کنید
    موریتز لنز اجازه حل مشکل انتقال یافته با Superlu را می دهد
    Rasmus munk larsen توسعه دهنده
    بو لی اشکالات را در سازنده Spline رفع کنید
    سباستین لیپونر پشتیبانی از تلفیق MSVC
    دانیل لونبرگ کلاس پراکنده را اضافه کنید
    دیوید جی لیتز رفع اشکال برای محصول ماتریس متراکم *
    Naumov Maks رفع اشکال در تست حل کننده چند جمله ای
    آنجلوس مانتزافلریس اصلاح کنید تا از MPFR استفاده شود
    D J Marcin اشکال اپراتور و تقدم را برطرف کنید
    کنستانتینوس A. مارگاریت altivec/vsx ، نئون بازو (32 بیتی/64 بیتی) و S390X SIMD (ZVECTOR) بردار
    راجر مارتین عملکرد مماس قوس عاقلانه مؤلفه
    ریکارد مارکسر معکوس ، بهبود redux ، روش COUNT () ، برخی از dox
    وینچنزو دی ماسا رفع Cmake
    مسیحی مایر بررسی اولیه کد و ورودی در بحث های فنی/طراحی
    فرانک مایر-دورنبرگ رفع سازگاری MSVC
    کیر میرل تجزیه LDLT و سایر پیشرفت ها ، به یادگاری MPL کمک می کند
    لورن مونتل پیشرفت های cmake. لورن (با اسکندر) یکی از گوروس های Cmake در KDE است!
    Eamon Nerboe رفع تدوین برای Win32
    اسکندر نوندورف پیشرفت های cmake. اسکندر (با لوران) یکی از گوروس های Cmake در KDE است!
    جیسون نیوتن توابع مماس سازگار
    جیتس نیسن توابع ماتریس ، پیشرفت های زیادی در ماژول eigenvalues و در اسناد و موارد دیگر.
    Desire Nuentsa بسیاری از پیشرفت های ماژول پراکنده: Sparselu ، Sparseqr ، Ilut ، PastixSupport ،…
    یان اوبرلندر سازگاری با termios. h
    Jos van den Oever رفع تدوین
    مایکل اولبریش تکه های اولیه ، از جمله حلقه اولیه متا-
    سیمون زائر بهینه سازی برای نئون
    Bjo Piltz رفع تدوین بصری C
    بنیامین پیواروسکی برای ماتریس های پراکنده ConservativereSize () اضافه کنید
    Zach Ploskey کپی ویرایش آموزش
    giacomo po حل کننده تکراری مینس
    سرگی پوپوف رفع اشکال در SelfAdjointeigensolver
    مانوج راجگوپالان معرفی middlerrows () / middlecols () ، رفع اشکال برای انواع عددی غیر استاندارد
    استجپان راجکو رفع سازگاری MSVC
    jure repinc رفع Cmake
    کنت فرانک ریدیل بسیاری از رفع سازگاری ویندوز/MSVC ، رسیدگی به مشکلات تراز
    ریچارد رابرتز رفع اشکال در انتخاب MKL Householder QR
    آدولفو رودریگز جلوگیری از تخصیص در تجزیه ماتریس
    پیتر رومان پشتیبانی از فاکتورسازی ILU SuperLU
    الیور روپ رفع اشکال در محصول ماتریس پراکنده با ماتریس های ردیف اصلی
    رادو بوگدان روسو رفع اخطار تالیف
    سی آنتونیو سانچز توسعه دهنده
    گیوم سوپن ماتریس های خط افق
    اولیویه ساوت اشتباه تایپی در اسناد
    بنجامین شیندلر پرینترهای زیبا gdb
    مایکل اشمیت تعمیر در مونتاژ هنگام شناسایی CPU، رفع کامپایل متصل به حداقل/حداکثر
    دنیس شرید تایپ دف های جدید مانند AlignedBox3f
    یاکوب شوندنر تست برای کواترنیون های غیر تراز، معیار برای ماژول هندسه
    کریستین سیلر ماژول تنسور
    مارتین سنست رفع اشکال برای ماتریس های خالی
    سامیر شیوری چاپگر زیبا gdb را برای ماتریس های با اندازه متغیر اصلاح کنید
    اندی سامرویل توابعی برای به دست آوردن تقاطع بین دو خط Parametrized
    الکس استپلتون به سوالات سخت C++ کمک کنید
    بنوا اشتاینر ضرب ماتریس سریعتر، ماژول تانسور، CUDA
    سون استروتوف متد intersects() را به AlignedBox اضافه کنید
    لژک سویرسکی رفع نظارت در اسکریپت های نصب
    آدام ژالکوفسکی رفع اشکال در MatrixBase::makeHouseholder()
    سیلویو تراورسارو برای FindEigen3. cmake رفع کنید
    پیوتر تروجانک رفع کامپایل QCC
    آنتونی تروشه رفع اشکال در پشتیبانی QTransform و QMatrix
    آدولفو رودریگز تسوروکدیسیان نسخه JacobiSVD که منابع خود را از قبل تخصیص می دهد
    دیوید تلنباخ تعمیر و نگهداری عمومی پروژه، یکپارچه سازی مداوم، مشارکت های مختلف کد
    جیمز ریچارد تایرر رفع Cmake
    ریس اولریش پشتیبانی از پیکربندی Pkg، چاپگر زیبای GDB بهبود یافته
    هانری دو والانس اشتباه تایپی در اسناد
    اینگمار وانهاسل رفع Cmake
    میشل ون دایک رفع اشکال اسناد چند رشته ای
    اسکات ویلر بهبود اسناد
    فردی ویدردن رفع CMake، به LevenbergMarquardt اجازه می دهد تا با انواع غیر استاندارد کار کند
    اورس وولفر یک هشدار جدی رفع شد
    مانوئل یوگل رفع اشکال، کار بر روی معکوس با چک، ماژول Polynomial
    پیر زوپیتلی شروع با اجرای SVD تقسیم و تسخیر
    جوناس آدلر رفع اشکال برای پشتیبانی CUDA

    Eigen همچنین از کدهایی استفاده می کند که ما از منابع دیگر کپی کرده ایم. آنها در منابع ما و در تاریخ مرکوریال تأیید شده اند، اما اجازه دهید در اینجا به آنها نیز اشاره کنیم:

     

    شرکت اینتل کد SSE برای وارونگی ماتریس 4x4 از اینجا گرفته شده است.
    تیم دیویس AMD در حال سفارش مجدد فاکتورسازی نادر Cholesky که از SuiteSparse اقتباس شده است
    جولین پومیر اجرای SSE توابع ریاضی exp, log, cos, sin از GMM++
    یوسف سعد پیش شرط IncompleteLUT که از ITSOL می آید
    نویسندگان Minpack الگوریتم های بهینه سازی غیر خطی

    تشکر ویژه از Tuxfamily برای کیفیت فوق العاده خدماتشان و پروژه مزرعه کامپایل GCC که به ما امکان دسترسی به بسیاری از سیستم های مختلف از جمله ARM NEON را می دهد.

    اگر به دنبال ورودی BibTeX برای استفاده از Eigen در مقالات دانشگاهی هستید، صفحه BibTeX را ببینید.

فارکس وکسب درامد...
ما را در سایت فارکس وکسب درامد دنبال می کنید

برچسب : نویسنده : مهدی اسدی بازدید : <-PostHit-> تاريخ : يکشنبه 3 ارديبهشت 1402 ساعت: 13:40