اطلاعیه

Collapse
No announcement yet.

سریع ترین راه برای گرفتن ArcCos تا n رقم اعشار ( X منصرف از نتیجه X )

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سریع ترین راه برای گرفتن ArcCos تا n رقم اعشار ( X منصرف از نتیجه X )

    سریع ترین راه برای گرفتن ArcSin, ArcCos, Log, Exp
    تا n رقم (بیش از 10) اعشار. قابل انتخاب توسط کاربر.
    البته راه هاشون لزوماً یکی و یک الگوریتم نیست.
    از هیچ کتابخونه ای استفاده نمی کنیم. (به علت محدودیت هاش)

    اول ایده بدین، بعد می بینیم که میتونه با 16MHz تو AVR به زیر 1mS برسه ؟؟
    اگر آن كس كه بايد باشد، نيستي ؟
    پس چه فرقي مي كند كه كيستي ؟

    #2
    پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

    آقایون جواب بدین
    منتظرم
    خیلی مورد نیاز هستش.
    اگر آن كس كه بايد باشد، نيستي ؟
    پس چه فرقي مي كند كه كيستي ؟

    دیدگاه


      #3
      پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

      خب وقتی از کتابخانه استفاده نمی کنی یک راه مسلم داری اونم اینه که توابع رو تو برنامت بنویسی.
      بنظرت راه دیگه ایی هم میتونه باشه؟
      خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

      دیدگاه


        #4
        پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

        خوب آره دیگه. تو برنامه.
        ولی به چه روشهایی ؟؟
        انگار که دارین Library Source رو ارائه میکنین.

        *** منتها باید شرایط مساله رو هم ارضا کنه.
        اگر آن كس كه بايد باشد، نيستي ؟
        پس چه فرقي مي كند كه كيستي ؟

        دیدگاه


          #5
          پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

          می تونید یک source جدید تعریف کنید که خودش یک کتابخانه جدید هستش و توابع را در اون تعریف کنید

          دیدگاه


            #6
            پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

            نوشته اصلی توسط shivadanesh
            می تونید یک source جدید تعریف کنید که خودش یک کتابخانه جدید هستش و توابع را در اون تعریف کنید
            نوشته اصلی توسط حمید نجفی
            خب وقتی از کتابخانه استفاده نمی کنی یک راه مسلم داری اونم اینه که توابع رو تو برنامت بنویسی.
            بنظرت راه دیگه ایی هم میتونه باشه؟
            منم فکر میکنم همین راهش باشه

            دیدگاه


              #7
              پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

              نه باباااااااااااا
              مثل اینکه مساله خوب جا نیافتاده !!!!

              به شما میگن که یک تابع برای گرفتن ArcCos بنوسید تا 50 رقم اعشار !!

              خوب اون راهه یا راه هاش رو ارائه بدین

              با دقت بالا و با زمان کم مثل پست اول.

              افتاد ؟؟
              اگر آن كس كه بايد باشد، نيستي ؟
              پس چه فرقي مي كند كه كيستي ؟

              دیدگاه


                #8
                پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

                سلام.
                برای محاسبه از روش بسط فورمول ها استفاده می کنیم که فقط شامل چهار عمل اصلی +*-/ می شه که دیگه نیازی به کتابخونه ها نداریم. برای بالا بردن سرعت هم از asm استفاده میکنیم. امیدوارم درست گرفته باشم

                دیدگاه


                  #9
                  پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

                  خیلی راحته ودقتش عاله هر چند رقم اعشار که بخوای .
                  سه کلمه : بسط مک لورن :wow:








                  از جمله ی رفتگان این راه دراز
                  باز آمده ای کو که به ما گوید راز
                  هان بر سر این دو راهه از روی نیاز
                  چیزی نگذاری که نمی آیی باز

                  دیدگاه


                    #10
                    پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

                    نوشته اصلی توسط Silix
                    نه باباااااااااااا
                    مثل اینکه مساله خوب جا نیافتاده !!!!

                    به شما میگن که یک تابع برای گرفتن ArcCos بنوسید تا 50 رقم اعشار !!

                    خوب اون راهه یا راه هاش رو ارائه بدین

                    با دقت بالا و با زمان کم مثل پست اول.

                    افتاد ؟؟
                    سلام
                    اگر تعداد ورودیآ‌ها محدود باشه و شما هم به مقدار کافی حافظه در اختیار داشته باشید، میآ‌توانید از یک lookup table استفاده کنید. به عنوان دیگر یه جدول از خروجیآ‌ها بر اساس ورودیآ‌ها درست کنید. یک روش خیلی سریع ولی با شرایط ذکر شده.
                    من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

                    دیدگاه


                      #11
                      پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

                      شرایط پست اول رو خوب نخوندین !!

                      برای 10 رقم اعشار 10^10 عدد باید توی LUT باشند. نه ؟
                      اگر آن كس كه بايد باشد، نيستي ؟
                      پس چه فرقي مي كند كه كيستي ؟

                      دیدگاه


                        #12
                        پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

                        مک لورن ؟؟!!

                        خیلی جواب بدی بود
                        اگر آن كس كه بايد باشد، نيستي ؟
                        پس چه فرقي مي كند كه كيستي ؟

                        دیدگاه


                          #13
                          پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

                          نوشته اصلی توسط Silix
                          شرایط پست اول رو خوب نخوندین !!

                          برای 10 رقم اعشار 10^10 عدد باید توی LUT باشند. نه ؟
                          شما جواب من رو درست متوجه نشدید شما گفتید که یک راهآ‌حل سریع برای محاسبه اون توابع میآ‌خواهید و جواب هم حداقل ۱۰ رقم اعشار دقت داشته باشه تا اینجا درست؟ بعد من گفتم اگر تعداد ورودیآ‌ها کم باشه (این ربطی به دقت خروجی نداره!!!) مثلا بخواهید 0-180 درجه رو با دقت ۰.۱ درجه به عنوان ورودی داشته باشید، حدودا به 18KByte حافظه برای مثلا ۲۰ رقم دقت نیاز دارید (اعداد به فرمت BCD در نظر گرفته شدهآ‌اند.)


                          20*180*10*4 = 144000 bits = 18000 bytes
                          من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

                          دیدگاه


                            #14
                            پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

                            این حرف شما درسته
                            ولی وقتی حرف از Resolution در حد 1e-10 در خروجی تابع مطرح میشه،آ‌خوب حتماً همون هم توی ورودی مورد نیاز هستش.
                            این میشه یه جورایی دور زدن مساله.
                            این محدودیتی که شما گذاشتین درسته ولی غیر کار بردی !!
                            چون ...
                            اگر آن كس كه بايد باشد، نيستي ؟
                            پس چه فرقي مي كند كه كيستي ؟

                            دیدگاه


                              #15
                              پاسخ : کی میتونه سریع ترین راه رو ارائه بده ؟ << خودتون رو محک بزنین >>

                              یکی از روش های محاسبات پیچیده استفاده از CORDIC algorithm است که ترکیبی از محاسبات و استفاده از LOOK-UP TABLE است . بیان تئوری این مطلب در این مجال ممکن نیست اما با جستجوی عبارت بالا در اینترنت منابع زیادی قابل دسترسی است . اساس این روش از سال 1959 بحث شده و کاربرد خوبی برای محاسبات پیچیده در میکروکنترلر و FPGA دارد .

                              دیدگاه

                              لطفا صبر کنید...
                              X