KORDIK - CORDIC

KORDIK (uchun COordinat Rotatsiya DIgital Csifatida tanilgan (omputer) Volder algoritmi, shu jumladan Dumaloq CORDIC (Jek E. Volder),[1][2] Lineer CORDIC, Giperbolik CORDIC (Jon Stiven Uolter),[3][4] va Umumiy giperbolik CORDIC (GH KORDIK) (Yuanyong Luo va boshqalar), [5][6] oddiy va samarali algoritm hisoblash uchun trigonometrik funktsiyalar, giperbolik funktsiyalar, kvadrat ildizlar, ko'paytirish, bo'linmalar va eksponentlar va logarifmlar o'zboshimchalik bilan asos bilan, odatda takrorlash uchun bitta raqam (yoki bit) bilan yaqinlashadi. Shuning uchun CORDIC ham raqamli raqamli algoritmlar. Sifatida tanilgan CORDIC va chambarchas bog'liq usullar psevdo-multiplikatsiya va soxta bo'linish yoki omillarni birlashtirish odatda yo'q bo'lganda ishlatiladi apparat multiplikatori mavjud (masalan oddiy mikrokontrollerlar va FPGA ) talab qilinadigan yagona operatsiyalar bo'lgani kabi qo'shimchalar, olib tashlash, bitshift va qidiruv jadvallari. Shunday qilib, ularning barchasi sinfiga tegishli almashtirish va qo'shish algoritmlari. Kompyuter fanida CORDIC ko'pincha amalga oshirish uchun ishlatiladi suzuvchi nuqta arifmetikasi maqsad platformada qo'shimcha xarajatlar yoki kosmik sabablarga ko'ra qo'shimcha qurilmalar etishmayotganida.

Tarix

Shu kabi matematik texnikalar tomonidan nashr etilgan Genri Briggs 1624 yildayoq[7][8] va 1771 yilda Robert Gul,[9] ammo CORDIC murakkabligi past bo'lgan cheklangan holatdagi protsessorlar uchun yaxshiroq optimallashtirilgan.

CORDIC 1956 yilda o'ylab topilgan[10][11] tomonidan Jek E. Volder da aeroelektronika bo'limi Ishonch o'rnini almashtirish zarurati tufayli analog hal qiluvchi ichida B-58 bombardimonchi real vaqtda raqamli echimini aniqroq va samarali bajaradigan navigatsion kompyuter.[11] Shuning uchun, CORDIC ba'zan a deb nomlanadi raqamli hal qiluvchi.[12][13]

O'zining tadqiqotida Volder 1946 yilgi nashrdagi formuladan ilhomlangan CRC Kimyo va fizika bo'yicha qo'llanma:[11]

bilan , .

Uning tadqiqotlari CORDIC algoritmini echishni taklif qiladigan ichki texnik hisobotga olib keldi sinus va kosinus funktsiyalari va uni amalga oshiradigan prototipli kompyuter.[10][11] Hisobotda giperbolikani hisoblash imkoniyati ham muhokama qilindi koordinatalarning aylanishi, logarifmlar va eksponent funktsiyalar o'zgartirilgan CORDIC algoritmlari bilan.[10][11] CORDIC-dan foydalanish ko'paytirish va bo'linish bu vaqtda ham o'ylab topilgan.[11] Convairdagi Volderning hamkasbi Dan H. Dagget CORDIC printsipiga asoslanib, ikkilik va ikkilik kodli o‘nli kasr (BCD).[11][14]

1958 yilda Convair nihoyat hal qilish uchun namoyish tizimini qurishni boshladi radar tuzatish - nomlangan muammolarni hal qilish KORDIK I, 1960 yilda kompaniyani tark etgan Voldersiz yakunlandi.[1][11] Ko'proq universal KORDIK II modellar A (statsionar) va B (havodagi) 1962 yilda Daggett va Garri Shuss tomonidan qurilgan va sinovdan o'tgan.[11][15]

Volderning CORDIC algoritmi birinchi marta 1959 yilda ommaviy ravishda tasvirlangan,[1][2][11][13][16] bu navigatsiya kompyuterlariga, shu jumladan kompaniyalar tomonidan kiritilishiga olib keldi Martin-Orlando, Kompyuter nazorati, Litton, Kearfott, Lear-Siegler, Sperri, Raytheon va Kollinz radiosi.[11]

Volder qurish uchun Malkom MakMillan bilan hamkorlik qildi Afina, a belgilangan nuqta ish stoli kalkulyatori uning ikkilik CORDIC algoritmidan foydalangan holda.[17] Dizayn bilan tanishtirildi Hewlett-Packard 1965 yil iyun oyida, ammo qabul qilinmadi.[17] Shunday bo'lsa-da, MacMillan tanishtirdi Devid S. Kokran (HP) Volder algoritmiga va keyinchalik Koxran Volder bilan uchrashganda, uni xuddi shunday yondashishga murojaat qilgan Jon E. Meggitt (IBM[18]kabi taklif qilgan edi psevdo-multiplikatsiya va soxta bo'linish 1961 yilda.[18][19] Meggitt usuli ham 10-bazadan foydalanishni taklif qildi[18] dan ko'ra tayanch 2, Volder's CORDIC tomonidan hozirgacha ishlatilgan. Ushbu harakatlar olib keldi ROMable 1966 yilda Hewlett-Packard ichida o'nlik kasrli CORDIC prototip mashinasini mantiqiy amalga oshirish,[20][19] tomonidan qurilgan va kontseptual tarzda olingan Tomas E. Osborne prototipik Yashil mashina, to'rt funktsiyali, suzuvchi nuqta u to'ldirgan ish stoli kalkulyatori DTL mantiq[17] 1964 yil dekabrda.[21] Ushbu loyiha Hewlett-Packard-ning ilmiy funktsiyalarga ega bo'lgan birinchi ish stoli kalkulyatorini ommaviy namoyish qilishiga olib keldi HP 9100A 1968 yil mart oyida, seriyali ishlab chiqarish shu yilning oxiridan boshlanadi.[17][21][22][23]

Qachon Vang laboratoriyalari HP 9100A ishlatilganligini aniqladi shunga o'xshash yondashuv uchun omillarni birlashtirish ularning oldingi usuli LOCI-1[24] (1964 yil sentyabr) va LOCI-2 (1965 yil yanvar)[25][26] Logaritmik hisoblash vositasi ish stoli kalkulyatorlari,[27] ular muvaffaqiyatsiz Hewlett-Packard-dan birini buzganlikda ayblashdi Vang 1968 yildagi patentlar.[19][28][29][30]

Jon Stiven Uolter Hewlett-Packard da algoritmni umumlashtirdi Birlashtirilgan CORDIC hisoblash imkonini beradigan 1971 yilda algoritm giperbolik funktsiyalar, tabiiy eksponentlar, tabiiy logaritmalar, ko'paytirish, bo'linmalar va kvadrat ildizlar.[31][3][4][32] KORDIK subroutines trigonometrik va giperbolik funktsiyalar uchun ularning ko'pgina kodlari bo'lishishi mumkin.[28] Ushbu rivojlanish birinchi natijaga olib keldi ilmiy qo'l kalkulyatori, HP-35 1972 yilda.[28][33][34][35][36][37] Giperbolik CORDIC asosida, Yuanyong Luo va boshq. qo'shimcha ravishda 2019 yilda o'zboshimchalik bilan xed bazasi bilan logaritmalarni va eksponentlarni to'g'ridan-to'g'ri hisoblash uchun Generalized Hyperbolic CORDIC (GH CORDIC) ni taklif qildi.[5][6][38][39][40] Nazariy jihatdan, Giperbolik CORDIC - bu GH CORDIC ning alohida hodisasidir.[5]

Dastlab, CORDIC faqat ikkilik sanoq sistemasi Meggitt o'zining psevdo-multiplikatsiya usuli uchun o'nlik tizimdan foydalanishni taklif qilganiga qaramay, CORDIC kasr yana bir necha yil davomida asosan eshitilmagan bo'lib qoldi, shuning uchun Hermann Shmid va Entoni Bogacki buni 1973 yilidayoq yangilik sifatida taklif qildi[16][13][41][42][43] va keyinchalik Hewlett-Packard uni 1966 yilda amalga oshirganligi aniqlandi.[11][13][20][28]

O'nli CORDIC keng qo'llanila boshlandi cho'ntak kalkulyatorlari,[13] ularning aksariyati ikkilik emas, ikkilik kodli o'nlik (BCD) da ishlaydi. Kirish va chiqish formatidagi bu o'zgarish CORDIC-ning asosiy hisoblash algoritmlarini o'zgartirmadi. CORDIC, ayniqsa, qo'lda ishlaydigan kalkulyatorlar uchun juda mos keladi, bu erda past narx va shuning uchun chip chiplari soni pastligi tezlikka qaraganda ancha muhimdir.

CORDIC dasturi joriy qilingan ARM-ga asoslangan STM32G4, Intel 8087,[43][44][45][46][47] 80287,[47][48] 80387[47][48] ga qadar 80486[43] koprotsessor qatori, shuningdek Motorola 68881[43][44] va 68882 suzuvchi nuqta ko'rsatmalarining ayrim turlari uchun, asosan, darvozalar sonini (va murakkabligini) kamaytirishning bir usuli sifatida FPU kichik tizim.

Ilovalar

CORDIC trigonometrik, giperbolik va logarifmik funktsiyalarni hisoblash, haqiqiy va murakkab ko'paytmalar, bo'linish, kvadrat ildizlarni hisoblash, chiziqli tizimlarni echish kabi bir qator hisoblash vazifalari uchun oddiy smenali qo'shish operatsiyalaridan foydalanadi. o'ziga xos qiymat taxmin, yagona qiymat dekompozitsiyasi, QR faktorizatsiyasi va boshqalar. Natijada, CORDIC kabi turli sohalardagi dasturlar uchun ishlatilgan signal va tasvirni qayta ishlash, aloqa tizimlari, robototexnika va 3D grafika umumiy ilmiy va texnik hisob-kitoblardan tashqari.[49][50]

Uskuna

Algoritmi navigatsion tizimda ishlatilgan Apollon dasturi "s Oyda harakatlanuvchi transport vositasi hisoblash rulman va masofa yoki masofa Oy moduli.[51]:14[52]:17 Amalga oshirish uchun CORDIC ishlatilgan Intel 8087 matematik koprotsessor, 1980 yilda apparatni ko'paytirishni amalga oshirish zaruriyatidan qochib.[53]

CORDIC odatda qo'shimcha multiplikator mavjud bo'lmaganda (masalan, mikrokontroller) yoki u qo'llab-quvvatlaydigan funktsiyalarni amalga oshirish uchun zarur bo'lgan eshiklar sonini kamaytirish kerak bo'lganda (masalan, FPGA yoki ASIC ).

Boshqa tomondan, qo'shimcha ko'paytirgich mavjud bo'lganda (masalan., a DSP mikroprotsessor), jadvalni qidirish usullari va quvvat seriyasi odatda CORDIC dan tezroq. So'nggi yillarda CORDIC algoritmi turli biotibbiyot dasturlari, ayniqsa FPGA dasturlarida keng qo'llanilmoqda.

Dasturiy ta'minot

Faqatgina butun sonli protsessorlarga ega bo'lgan ko'plab eski tizimlar CORDIC-ni o'zlarining tarkibiy qismlari sifatida har xil darajada amalga oshirdilar IEEE suzuvchi nuqta kutubxonalar. Ko'pgina zamonaviy umumiy maqsadli protsessorlarda suzuvchi nuqta registrlari mavjud, chunki ular qo'shish, ayirish, ko'paytirish, bo'lish, sinus, kosinus, kvadrat ildiz, jurnal kabi umumiy operatsiyalarga ega.10, tabiiy jurnal, ularda dasturiy ta'minot bilan CORDICni amalga oshirish zarurati deyarli mavjud emas. CORDIC-dan foydalanishni faqat mikrokontroller yoki maxsus xavfsizlik va cheklangan dasturiy ta'minot dasturlari ko'rib chiqishi kerak.

Ish tartibi

Aylantirish rejimi

CORDIC yordamida turli xil funktsiyalarni hisoblash mumkin. Ushbu tushuntirish CORDIC-ni qanday ishlatishni ko'rsatadi aylanish rejimi kerakli burchak berilganligini nazarda tutib, burchakning sinusi va kosinusini hisoblash radianlar va belgilangan nuqta formatida namoyish etilgan. Burchak uchun sinus yoki kosinusni aniqlash , y yoki x bo'yicha nuqtaning koordinatasi birlik doirasi kerakli burchakka mos keladigan topilishi kerak. CORDIC-dan foydalanib, vektordan boshlanadi :

Amaldagi CORDIC algoritmining tasviri

Birinchi takrorlashda ushbu vektor soat yo'nalishi bo'yicha 45 ° burilib, vektorni oladi . Ketma-ket takrorlanishlar kerakli burchakka erishilguncha vektorni o'lchamlarini kamaytirish bosqichlari bilan u yoki bu yo'nalishda aylantiradi. Qadam hajmi uchun .

Rasmiy ravishda har bir takrorlash vektorni ko'paytirish orqali amalga oshiriladigan aylanishni hisoblab chiqadi bilan aylanish matritsasi :

Aylanish matritsasi quyidagicha berilgan

Quyidagi ikkitadan foydalanish trigonometrik identifikatorlar:

aylanish matritsasi bo'ladi

Qaytgan vektor uchun ifoda keyin bo'ladi

qayerda va ning tarkibiy qismlari . Burchaklarni cheklash shu kabi , teginish bilan ko'paytirishni ikkita kuch bilan bo'linish bilan almashtirish mumkin, bu raqamli kompyuter texnikasida bit siljishi. So'ngra ifoda aylanadi

qayerda

va aylanish yo'nalishini aniqlash uchun ishlatiladi: agar burchak ijobiy bo'lsa, unda +1 ga teng, aks holda u -1 ga teng.

takrorlanadigan jarayonda e'tiborsiz qoldirilishi mumkin va keyin miqyosi koeffitsienti bilan qo'llanilishi mumkin

oldindan hisoblab chiqiladi va jadvalda yoki bitta doimiy sifatida saqlanadi, agar takrorlanish soni aniqlangan bo'lsa. Ushbu tuzatish oldindan, miqyosi bilan amalga oshirilishi mumkin va shuning uchun ko'paytirishni tejash. Bundan tashqari, buni ta'kidlash mumkin[43]

algoritmning murakkabligini yanada kamaytirishga imkon berish. Ba'zi ilovalar tuzatishdan qochishi mumkin umuman, natijada qayta ishlash daromadiga olib keladi :[54]

Etarli miqdordagi takrorlashdan so'ng, vektorning burchagi kerakli burchakka yaqin bo'ladi . Oddiy maqsadlar uchun 40 ta takrorlash (n = 40) o'ninchi kasrga to'g'ri natijani olish uchun etarli.

Qolgan yagona vazifa - har bir iteratsiyada aylanish soat yo'nalishi bo'yicha yoki teskari yo'nalishda bo'lishi kerakligini aniqlash (ning qiymatini tanlash) ). Bu har bir iteratsiyada burchakning qay darajada aylanganligini kuzatib borish va kerakli burchakdan ayirish orqali amalga oshiriladi; keyin kerakli burchakka yaqinlashish uchun , agar ijobiy, aylanish soat yo'nalishi bo'yicha, aks holda u salbiy va aylanish soat sohasi farqli ravishda:

Ning qiymatlari shuningdek oldindan hisoblab chiqilishi va saqlanishi kerak. Ammo kichik burchaklar uchun, jadval o'lchamini kamaytirib, sobit nuqta bilan tasvirlashda.

Yuqoridagi rasmda ko'rinib turganidek, burchakning sinusi bo'ladi y yakuniy vektorning koordinatasi esa x koordinat - kosinus qiymati.

Vektorizatsiya rejimi

Yuqorida tavsiflangan aylanish-rejim algoritmi har qanday vektorni aylantirishi mumkin (faqat birlik vektori bo'ylab tekislangan emas x o'qi) -90 ° dan + 90 ° gacha bo'lgan burchak bilan. Aylanish yo'nalishi bo'yicha qarorlar bog'liq ijobiy yoki salbiy.

Vektorlashtirish-ishlash tartibi algoritmni biroz o'zgartirishni talab qiladi. Bu vektor bilan boshlanadi x koordinatasi ijobiy va the y koordinata o'zboshimchalik bilan Ketma-ket aylanishlar vektorni "ga" aylantirish maqsadiga ega x o'qi (va shuning uchun y koordinata nolga). Har bir qadamda qiymati y aylanish yo'nalishini belgilaydi. Ning yakuniy qiymati umumiy aylanish burchagini o'z ichiga oladi. Ning yakuniy qiymati x tomonidan o'lchangan asl vektorning kattaligi bo'ladi K. Shunday qilib, vektorlashtirish rejimidan aniq foydalanish to'rtburchaklar dan qutb koordinatalariga o'tishdir.

Amalga oshirish

Dasturiy ta'minot misoli

Quyidagi MATLAB /GNU oktavi hech kimga ishonmaydigan CORDIC dasturini amalga oshirish transandantal funktsiyalar jadvallarni oldindan hisoblashdan tashqari. Agar takrorlash soni bo'lsa n oldindan belgilanadi, keyin ikkinchi jadvalni bitta doimiy bilan almashtirish mumkin. MATLAB standart ikki tomonlama aniqlikdagi arifmetikasi va "formatdagi uzunligi" bilan chop etish natijasida natijalar aniqligini oshiradi n taxminan 48 gacha.

funktsiyav =samimiy(beta, n)% Ushbu funktsiya v = [cos (beta), sin (beta)] (radianlarda beta) ni hisoblab chiqadin takrorlanishdan%. N ni oshirish aniqlikni oshiradi.agar beta <-pi / 2 || beta> pi / 2    agar beta <0        v = samimiy(beta-versiya + pi, n);    boshqav = samimiy (beta - pi, n);    oxiriv = -v; % ikkinchi yoki uchinchi chorak uchun belgini aylantiring    qaytishoxiriCORDIC tomonidan ishlatiladigan doimiy jadvallar initsializatsiyasi% ga ikkita salbiy kuchning arktangentsalari jadvali kerak, radianlarda:% burchaklar = atan (2.. ^ - (0:27));burchaklar =  [  ...    0.78539816339745   0.46364760900081   0.24497866312686   0.12435499454676 ...    0.06241880999596   0.03123983343027   0.01562372862048   0.00781234106010 ...    0.00390623013197   0.00195312251648   0.00097656218956   0.00048828121119 ...    0.00024414062015   0.00012207031189   0.00006103515617   0.00003051757812 ...    0.00001525878906   0.00000762939453   0.00000381469727   0.00000190734863 ...    0.00000095367432   0.00000047683716   0.00000023841858   0.00000011920929 ...    0.00000005960464   0.00000002980232   0.00000001490116   0.00000000745058 ];% va o'zaro uzunlikdagi vektorlarning mahsulot jadvali [1, 2 ^ -2j]:% Kvalues ​​= cumprod (1./abs (1 + 1j * 2. ^ (- (0:23))))Kvalues = [ ...    0.70710678118655   0.63245553203368   0.61357199107790   0.60883391251775 ...    0.60764825625617   0.60735177014130   0.60727764409353   0.60725911229889 ...    0.60725447933256   0.60725332108988   0.60725303152913   0.60725295913894 ...    0.60725294104140   0.60725293651701   0.60725293538591   0.60725293510314 ...    0.60725293503245   0.60725293501477   0.60725293501035   0.60725293500925 ...    0.60725293500897   0.60725293500890   0.60725293500889   0.60725293500888 ];Kn = Kvalues(min(n, uzunlik(Kvalues)));% Loop o'zgaruvchilarini ishga tushirish:v = [1;0]; % 2-vektorli kosinus va nol sinusi bilan boshlanadiikki kuch = 1;burchak = burchaklar(1);% Takrorlashuchun j = 0:n-1;    agar beta <0        sigma = -1;    boshqasigma = 1;    oxirifactor = sigma * poweroftwo;    % Matritsani ko'paytirishni ikkala kattalik bo'yicha masshtablash va qo'shib ayirish yordamida amalga oshirish mumkinligiga e'tibor bering    R = [1, -omil; omil, 1];    v = R * v; % 2 dan 2 gacha matritsa ko'paytiriladi    beta-versiya = beta-versiya - sigma * burchak; % qolgan burchakni yangilang    ikki kuch = ikki kuch / 2;    % burchakni jadvaldan yangilaydi yoki oxir-oqibat ikkiga bo'linib    agar j + 2> uzunlik (burchaklar)        burchak = burchak / 2;    boshqaburchak = burchaklar (j + 2);    oxirioxiri% Chiqish vektorining uzunligini [cos (beta), sin (beta)] qilib sozlang:v = v * Kn;qaytishtugatish funktsiyasi

Ikki-ikkitasi matritsani ko'paytirish oddiy smenalar va qo'shimchalar juftligi tomonidan amalga oshirilishi mumkin.

    x = v[0] - sigma * (v[1] * 2^(-j));    y = sigma * (v[0] * 2^(-j)) + v[1];    v = [x; y];

Java-da matematik sinf a scalb (ikki baravar x, int o'lchov) bunday siljishni amalga oshirish usuli,[55] C ga ega ldexp funktsiyasi,[56] va x86 sinf protsessorlari quyidagilarga ega o'lchovli suzuvchi nuqta ishlashi.[57]

Uskuna misoli

Soni mantiq eshiklari CORDIC-ni amalga oshirish uchun multiplikator uchun zarur bo'lgan raqam bilan taqqoslash mumkin, chunki ikkalasi ham siljish va qo'shimchalar kombinatsiyasini talab qiladi. Multiplikatorga asoslangan yoki CORDIC-ga asoslangan dasturni tanlash kontekstga bog'liq bo'ladi. Ikkala ko'paytma murakkab sonlar ularning haqiqiy va xayoliy tarkibiy qismlari (to'rtburchaklar koordinatalari) bilan ifodalangan, masalan, 4 marta ko'paytirishni talab qiladi, ammo ularni qutb koordinatalari bilan ifodalangan murakkab sonlar ustida ishlaydigan bitta CORDIC tomonidan amalga oshirilishi mumkin, ayniqsa, agar ularning kattaligi ahamiyatsiz bo'lsa ( birlik doirasidagi vektorli murakkab vektor aslida aylanishga to'g'ri keladi). CORDIC-lar ko'pincha telekommunikatsiya sxemalarida qo'llaniladi raqamli pastga o'tkazgichlar.

Tegishli algoritmlar

CORDIC sinfining bir qismidir "almashtirish va qo'shish" algoritmlari, Genri Briggsning ishidan olingan logaritma va eksponent algoritmlar kabi. Ko'p elementar funktsiyalarni hisoblash uchun ishlatilishi mumkin bo'lgan yana bir siljish va qo'shish algoritmi bu BKM algoritmi, bu logaritma va eksponent algoritmlarni kompleks tekislikka umumlashtirishdir. Masalan, BKM yordamida haqiqiy burchakning sinusi va kosinusini hisoblash mumkin (radianlarda) ning eksponentligini hisoblash orqali , bu . BKM algoritmi CORDICga qaraganda biroz murakkabroq, ammo uning afzalligi shundaki, unga miqyoslash koeffitsienti kerak emas (K).

Shuningdek qarang

Adabiyotlar

  1. ^ a b v Volder, Jek E. (1959-03-03). "CORDIC hisoblash texnikasi" (PDF). G'arbiy qo'shma kompyuter konferentsiyasi (WJCC) materiallari. (taqdimot). San-Fransisko, Kaliforniya, AQSh: Milliy qo'shma kompyuter qo'mitasi (NJCC): 257-261. Olingan 2016-01-02.
  2. ^ a b Volder, Jek E. (1959-05-25). "CORDIC Trigonometrik hisoblash texnikasi" (PDF). Elektron kompyuterlarda IRE operatsiyalari. Radio muhandislari instituti, Inc. (IRE) (1959 yil sentyabrda nashr etilgan). 8 (3): 330-334 (qayta nashr: 226-230). EC-8 (3): 330-334. Olingan 2016-01-01.
  3. ^ a b Uolter, Jon Stiven (1971 yil may). Palo Alto (Kaliforniya, AQSh) da yozilgan. "Elementar funktsiyalar uchun yagona algoritm" (PDF). Bahor qo'shma kompyuter konferentsiyasi materiallari. Atlantik-Siti, Nyu-Jersi, AQSh: Hewlett-Packard kompaniyasi. 38: 379-385 - orqali Amerika Axborotni qayta ishlash jamiyatlari federatsiyasi (AFIPS).
  4. ^ a b Uolter, Jon Stiven (2000 yil iyun). "Birlashgan CORDIC haqida hikoya". VLSI signallarini qayta ishlash jurnali. Xingem, MA, AQSh: Kluwer Academic Publishers. 25 (2): 107–112. doi:10.1023 / A: 1008162721424. ISSN  0922-5773. S2CID  26922158.
  5. ^ a b v Luo, Yuanyong; Vang, Yuxuan; Xa, Yajun; Vang, Chjunfen; Chen, Siyuan; Pan, Hongbing (sentyabr, 2019). "Umumlashtirilgan giperbolik CORDIC va uning o'zboshimchalik bilan fiksatsiyalangan asos bilan logaritmik va eksponent hisoblash". IEEE operatsiyalari juda katta miqyosli integratsiya (VLSI) tizimlarida. 27 (9): 2156–2169. doi:10.1109 / TVLSI.2019.2919557. S2CID  196171166.
  6. ^ a b Luo, Yuanyong; Vang, Yuxuan; Xa, Yajun; Vang, Chjunfen; Chen, Siyuan; Pan, Hongbing (sentyabr, 2019). Umumlashtirilgan giperbolik CORDIC va uning o'zboshimchalik bilan sobit asos bilan logaritmik va eksponent hisoblash uchun "tuzatishlar""". IEEE operatsiyalari juda katta miqyosli integratsiya (VLSI) tizimlarida. 27 (9): 2222. doi:10.1109 / TVLSI.2019.2932174.
  7. ^ Briggs, Genri (1624). Arithmetica Logarithmica. London. (Tarjima: [1] Arxivlandi 2016 yil 4 mart Orqaga qaytish mashinasi )
  8. ^ Laport, Jak (2014) [2005]. "Genri Briggs va HP 35". Parij, Frantsiya. Arxivlandi asl nusxasi 2015-03-09. Olingan 2016-01-02. [2]
  9. ^ Gul, Robert (1771). Radix. Logaritmalarni yasashning yangi usuli. London: J. Beekroft. Olingan 2016-01-02.
  10. ^ a b v Volder, Jek E. (1956-06-15), Koordinatali aylanish va funktsiyalarni yaratish uchun ikkilik hisoblash algoritmlari (ichki hisobot), Ishonch, Aeroelektronika guruhi, IAR-1.148
  11. ^ a b v d e f g h men j k l Volder, Jek E. (2000 yil iyun). "CORDIC ning tug'ilishi" (PDF). VLSI signallarini qayta ishlash jurnali. Xingem, MA, AQSh: Kluwer Academic Publishers. 25 (2): 101–105. doi:10.1023 / A: 1008110704586. ISSN  0922-5773. S2CID  112881. Arxivlandi asl nusxasi (PDF) 2016-03-04 da. Olingan 2016-01-02.
  12. ^ Perle, Maykl D. (1971 yil iyun), "CORDIC texnikasi trigonometrik funktsiyani qisqartiradi", Kompyuter dizayni, Boston, MA, AQSh: Computer Design Publishing Corp .: 72–78 (NB. Ba'zi manbalarda bu kabi noto'g'ri deb nomlangan P. Z. Perle yoki ichida Komponent dizayni.)
  13. ^ a b v d e Shmid, Hermann (1983) [1974]. O'nli hisoblash (1 (qayta nashr etish) tahrir). Malabar, Florida, AQSh: Robert E. Krieger nashriyot kompaniyasi. 162, 165–176, 181–193-betlar. ISBN  0-89874-318-4. Olingan 2016-01-03. (NB. Ushbu qayta nashrning hech bo'lmaganda bir nechta to'plami bo'lgan noto'g'ri nashrlar 115–146 sahifalardagi nuqsonlar bilan.)
  14. ^ Daggett, Dan H. (1959 yil sentyabr). "CORDIC-dagi o'nlik va ikkilik konversiyalar". Elektron kompyuterlarda IRE operatsiyalari. Radio muhandislari instituti, Inc. (IRE). 8 (3): 335–339. doi:10.1109 / TEC.1959.5222694. ISSN  0367-9950. EC-8 (3): 335-339. Olingan 2016-01-02.
  15. ^ Advanced Systems Group (1962-08-06), O'rnatish uchun bog'laydigan uskunaning texnik tavsifi (hisobot), Fort-Uort, Texas, AQSh: Umumiy dinamikasi, FZE-052
  16. ^ a b Shmid, Hermann (1974). O'nli hisoblash (1 nashr). Binghamton, Nyu-York, AQSh: John Wiley & Sons, Inc. pp.162, 165–176, 181–193. ISBN  0-471-76180-X. Olingan 2016-01-03. Hozirgacha CORDIC faqat ikkilik shaklda amalga oshirilganligi ma'lum bo'lgan. Ammo, bu erda ko'rsatilgandek, algoritmni o'nlik tizim uchun osongina o'zgartirish mumkin. * […] * Bu orada ma'lum bo'ldi Hewlett Packard va boshqa kalkulyator ishlab chiqaruvchilari o'zlarining ilmiy kalkulyatorlarida o'nli CORDIC texnikasidan foydalanadilar.
  17. ^ a b v d Leybson, Stiven (2010). "HP 9100 loyihasi: ekzotermik reaktsiya". Olingan 2016-01-02.
  18. ^ a b v Meggitt, Jon E. (1961-08-29). "Soxta bo'linish va yolg'on ko'paytirish jarayonlari" (PDF). IBM Journal of Research and Development. Riverton, Nyu-Jersi, AQSh: IBM korporatsiyasi (1962 yil aprelda nashr etilgan). 6 (2): 210–226, 287. doi:10.1147 / rd.62.0210. Olingan 2016-01-09. John E. Meggitt B.A., 1953; PhD, 1958, Kembrij universiteti. Birinchisi Smit mukofoti 1955 yilda Kembrijda bo'lib, ilmiy tadqiqot stendini sayladi Emmanuel kolleji. […] Qo'shildi Xinclidagi IBM Britaniya laboratoriyasi, Vinchester 1958 yilda. Qiziqishlar kiradi xatolarni tuzatuvchi kodlar va kichik mikroprogramlangan kompyuterlar. ([3], [4] )
  19. ^ a b v Cochran, David S. (2010-11-19). "Chorak asr HP da" (suhbat tipografiyasi). Kompyuter tarixi muzeyi / HP xotiralari. 7: Ilmiy kalkulyatorlar, taxminan 1966 yil. CHM X5992.2011. Olingan 2016-01-02. Transdendental funktsiyalarni amalga oshirgan Jek Volder bilan suhbatlashish uchun men hatto Janubiy Kaliforniyaga uchib ketdim Afina mashinasi va u bilan bir soatcha suhbatlashdi. U menga Meggitt tomonidan yolg'on bo'linish, psevdo multiplikatsiya umumlashtirilgan funktsiyalarini olgan asl qog'ozlariga murojaat qildi. […] Men juda qiziq kashfiyotlarga olib boradigan adabiy izlanishlar olib bordim. […] Men 1624 yilgacha risola topdim Genri Briggs MacMillan va Volder ishlatgan psevdo-bo'linish / psevdo-ko'paytirish usulidan qiziqarli foydalanilgan umumiy logaritmalarni hisoblashni muhokama qilish. Afina. [...] Biz sotib oldik LOCI-2 dan Vang laboratoriyalari va Wang Labs LOCI II ishlatganligini tan oldi bir xil algoritm kvadrat ildizni, shuningdek log va eksponentlarni bajarish. Kiritilgandan so'ng 9100 bizning yuridik bo'limimiz Vangdan ularning patentini buzganimiz to'g'risida xat oldi. Va men faqat Briggs ma'lumotnomasi bilan lotin tilidagi yozuvni qaytarib yubordim va unda: "Aftidan oldingi san'at menga. "Biz hech qachon boshqa so'zni eshitmaganmiz. ([5] )
  20. ^ a b Cochran, David S. (1966-03-14). "BCD-da transsendental funktsiyalarni hisoblash uchun CORDIC-dan foydalanish to'g'risida" (Jek E. Volder bilan shaxsiy aloqa). Iqtibos jurnali talab qiladi | jurnal = (Yordam bering)
  21. ^ a b Osborne, Tomas E. (2010) [1994]. "Tom Osbornning hikoyasi o'z so'zlari bilan". Olingan 2016-01-01.
  22. ^ Leybson, Stiven (2010). "HP 9100: dastlabki sayohat". Olingan 2016-01-02.
  23. ^ Cochran, David S. (1968 yil sentyabr). "9100A kalkulyatorining ichki dasturlashi". Hewlett-Packard jurnali. Palo Alto, Kaliforniya, AQSh: Hewlett-Packard: 14–16. Olingan 2016-01-02. ([6] )
  24. ^ Shaxsiy hisoblash quvvatingizni yangi LOCI-1 Logaritmik hisoblash vositasi bilan kengaytiring, Wang Laboratories, Inc., 1964, 2-3 bet, olingan 2016-01-03
  25. ^ Bensen, Rik (2013-08-31) [1997]. "Vang LOCI-2". Eski kalkulyator veb-muzeyi. Beavercreek, Oregon Siti, Oregon, AQSh. Olingan 2016-01-03.
  26. ^ "Wang LOCI xizmat ko'rsatmasi" (PDF). Wang Laboratories, Inc. 1967. L55-67. Olingan 2018-09-14.
  27. ^ Bensene, Rik (2004-10-23) [1997]. "Wang Model 360SE kalkulyator tizimi". Eski kalkulyator veb-muzeyi. Beavercreek, Oregon Siti, Oregon, AQSh. Olingan 2016-01-03.
  28. ^ a b v d Cochran, David S. (iyun 2010). "HP-35 dizayni, innovatsiyalar bo'yicha amaliy tadqiqotlar". HP xotira loyihasi. Olingan 2016-01-02. Ish stolini ishlab chiqish paytida HP 9100 kalkulyator Tom Osborne tomonidan tavsiya etilgan me'morchilikka mos algoritmlarni ishlab chiqishda men javobgardim. Algoritmlar bo'yicha taklif qilingan metodologiya Malkolm MakMillandan kelgan bo'lsa-da, men asosiy hisob-kitoblarni tushunish uchun juda ko'p o'qidim […] Vang laboratoriyalari shunga o'xshash hisoblash usullaridan foydalangan edi, mening tadqiqotim shuni topdi oldingi san'at ularning patentlarida o'qilgan 1624 yil. […] Ushbu tadqiqot moslashtirishga imkon berdi transandantal funktsiyalar apparat cheklovlari doirasida xaridor ehtiyojlarini qondirish uchun algoritmlardan foydalanish orqali. Bu rivojlanish davrida bebaho ekanligini isbotladi HP-35, […] Quvvat seriyasi, polinom kengaytmalari, davom etgan kasrlar va Chebyshev polinomlari barchasi transandantal funktsiyalar uchun ko'rib chiqilgan. Ko'paytirish va bo'linishlar soni talab qilinganligi sababli hammasi juda sekin edi. HP-35 uchun tezlik va dasturiy samaradorlik talablariga eng mos keladigan umumlashtirilgan algoritm 1624 yilda birinchi marta ta'riflangan takroriy psevdo-bo'linish va psevdo-ko'paytirish usuli edi. Genri Briggs ichidaArithmetica Logarithmica 'va keyinchalik Volder va Meggitt tomonidan. Bu avvalgi HP ish stoli kalkulyatorlarida ishlatilgan algoritmning bir xil turi. […] Algoritmlarning murakkabligi ko'p darajali dasturlashni zaruratga aylantirdi. Bu shuni anglatadiki, kalkulyator subroutine qobiliyatiga ega bo'lishi kerak edi, […] Arc-Hyperbolic-Tan singari transsendental funktsiyani yaratish uchun bir necha darajali subroutinalar kerak edi. […] Keyinchalik Kris Kler buni quyidagicha hujjatlashtirdi Algoritmik holat mashinasi (ASM) metodikasi. Hatto oddiy Sine yoki Cosine ham Tangent tartibini ishlatgan va keyin Sinusni trigonometrik identifikatorlardan hisoblagan. Ushbu mashaqqatli manipulyatsiyalar noyob dasturlar soni va dastur qadamlarini minimallashtirish uchun zarur edi […] Arifmetik ko'rsatmalar to'plami o'nli transandantal funktsiya kalkulyatori uchun maxsus ishlab chiqilgan. Asosiy arifmetik amallar a tomonidan bajariladi 10 ning to'ldiruvchisi ishchi saqlash sifatida ishlatiladigan registrlarning uchtasiga ma'lumot yo'llari bo'lgan qo'shimchini olib tashlovchi.
  29. ^ AQSh patent 3402285A, Vang, An, "Hisoblash apparati", 1968-09-17 nashr etilgan, 1968-09-17 chiqarilgan, tayinlangan Vang laboratoriyalari  ([7], [8] )
  30. ^ DE patent 1499281B1, Vang, An, "Rechenmaschine fuer logarithmische Rechnungen", 1970-05-06 yilda nashr etilgan, 1970-05-06 yilda chiqarilgan, tayinlangan Vang laboratoriyalari  ([9] )
  31. ^ Swartzlander, Jr., Earl E. (1990). Kompyuter arifmetikasi. 1 (2 nashr). Los Alamitos: IEEE Computer Society Press. ISBN  9780818689314. 0818689315. Olingan 2016-01-02.
  32. ^ Petrocelli, Orlando R., ed. (1972), 1971 yildagi eng yaxshi kompyuter hujjatlari, Auerbach Publishers, p. 71, ISBN  0877691274, olingan 2016-01-02
  33. ^ Cochran, David S. (1972 yil iyun). "HP-35 dagi algoritmlar va aniqlik" (PDF). Hewlett-Packard jurnali. 23 (10): 10–11.
  34. ^ Laport, Jak (2005-12-06). "HP35 trigonometrik algoritmi". Parij, Frantsiya. Arxivlandi asl nusxasi 2015-03-09. Olingan 2016-01-02. [10]
  35. ^ Laport, Jak (2005 yil fevral) [1981]. "Algoritmlarning siri". L'Ordinateur Individuel. Parij, Frantsiya (24). Arxivlandi asl nusxasi 2016-08-18. Olingan 2016-01-02. [11]
  36. ^ Laport, Jak (2012 yil fevral) [2006]. "Raqamli raqamlar bo'yicha raqamlar". Parij, Frantsiya. Arxivlandi asl nusxasi 2016-08-18. Olingan 2016-01-02. [12]
  37. ^ Laport, Jak (2012 yil fevral) [2007]. "HP 35 Logaritm algoritmi". Parij, Frantsiya. Arxivlandi asl nusxasi 2016-08-18. Olingan 2016-01-07. [13]
  38. ^ Vang, Yuxuan; Luo, Yuanyong; Vang, Chjunfen; Shen, Tsinghong; Pan, Hongbing (2020 yil yanvar). "Bitta aniqlikdagi suzuvchi nuqta sonining N-ildizini hisoblash uchun GH CORDIC-ga asoslangan arxitektura". IEEE operatsiyalari juda katta miqyosli integratsiya (VLSI) tizimlarida. 28 (4): 864–875. doi:10.1109 / TVLSI.2019.2959847. S2CID  212975618.
  39. ^ Mopuri, Suresh; Acharyya, Amit (2019 yil sentyabr). "Nth Root va Nth Power Computations uchun past murakkablikdagi umumiy VLSI arxitekturasini loyihalash metodologiyasi". IEEE davrlari va tizimlari bo'yicha operatsiyalar I: Muntazam qog'ozlar. 66 (12): 4673–4686. doi:10.1109 / TCSI.2019.2939720. S2CID  203992880.
  40. ^ Vachhani, Leena (2019 yil noyabr). "CORDIC o'chirilgan chiziqli tizim sifatida". Sxemalar, tizimlar va signallarni qayta ishlash. 39 (6): 3234–3249. doi:10.1007 / s00034-019-01295-8. S2CID  209904108.
  41. ^ Shmid, Hermann; Bogacki, Entoni (1973-02-20). "Ko'p transandantal funktsiyalarni yaratish uchun Decimal CORDIC-dan foydalaning". EDN: 64–73.
  42. ^ Franke, Richard (1973-05-08). Elementar funktsiyalarni apparat baholash algoritmlari tahlili (PDF). Monterey, Kaliforniya, AQSh: Dengiz kuchlari departamenti, Dengiz aspiranturasi maktabi. NPS-53FE73051A. Olingan 2016-01-03.
  43. ^ a b v d e Myuller, Jan-Mishel (2006). Boshlang'ich funktsiyalar: algoritmlar va amalga oshirish (2 nashr). Boston: Birxauzer. p. 134. ISBN  978-0-8176-4372-0. LCCN  2005048094. Olingan 2015-12-01.
  44. ^ a b Nave, Rafi (1983 yil mart). "Raqamli protsessorda transandantal funktsiyalarni amalga oshirish". Mikroprotsessing va mikroprogramma. 11 (3–4): 221–225. doi:10.1016/0165-6074(83)90151-5.
  45. ^ Palmer, Jon F.; Morse, Stiven Pol (1984). 8087 astar (1 nashr). John Wiley & Sons Avstraliya, cheklangan. ISBN  0471875694. 9780471875697. Olingan 2016-01-02.
  46. ^ Shisha, L. Brent (1990 yil yanvar). "Matematik koprotsessorlar: ular nima qilishlariga va buni qanday qilishlariga qarash". Bayt. 15 (1): 337–348. ISSN  0360-5280.
  47. ^ a b v Jarvis, Pits (1990-10-01). "CORDIC algoritmlarini amalga oshirish - transandantal funktsiyalarni hisoblash uchun yagona ixcham tartib". Doktor Dobbning jurnali: 152-156. Arxivlandi asl nusxasi 2016-03-04 da. Olingan 2016-01-02.
  48. ^ a b Yuen, A. K. (1988). "Intelning suzuvchi nuqtali protsessorlari". Electro / 88 konferentsiyasining yozuvi: 48/5/1–7.
  49. ^ Meher, Pramod Kumar; Vals, Xaver; Xuang, Tso-Bing; Sridxaran, K .; Maharatna, Koushik (2008-08-22). "50 yil CORDIC: algoritmlar, me'morchilik va qo'llanmalar" (PDF). IEEE davrlari va tizimlari bo'yicha operatsiyalar I: Muntazam qog'ozlar (2009-09-09 da nashr etilgan). 56 (9): 1893–1907. doi:10.1109 / TCSI.2009.2025803. S2CID  5465045.
  50. ^ Meher, Pramod Kumar; Park, Sang Yoon (2013 yil fevral). "Nth Root va Nth Power Computations uchun past murakkablikdagi umumiy VLSI arxitekturasini loyihalash metodologiyasi". IEEE operatsiyalari juda katta miqyosli integratsiya (VLSI) tizimlarida. 21 (2): 217–228. doi:10.1109 / TVLSI.2012.2187080. S2CID  7059383.
  51. ^ Xefron, VG; LaPiana, F. (1970-12-11). "Texnik memorandum 70-2014-8: Oyda harakatlanuvchi transport vositasining navigatsiya tizimi" (PDF). NASA. Vashington, Kolumbiya: Bellcomm.
  52. ^ Smit, Ernest S.; Mastin, Uilyam C. (1973 yil noyabr). "D-7469 texnik eslatmasi: Oyda harakatlanuvchi transport vositalarining navigatsiya tizimining ishlash ko'rsatkichlari (PDF). NASA. Xantsvill, Alabama: Marshall kosmik parvoz markazi.
  53. ^ Shirrif, Ken (may, 2020). "8087 matematik koprotsessor o'limidan ROM doimiylarini ajratib olish". righto.com. O'zini Ken Shirriff tomonidan nashr etilgan. Olingan 2020-09-03. ROM 16 arktangens qiymatini o'z ichiga oladi, 2 arktani-n. Bundan tashqari, u 14 ta log qiymatini, (1 + 2 ning asosiy 2 jurnallarini o'z ichiga oladi-n). Bu g'ayrioddiy qadriyatlarga o'xshab ko'rinishi mumkin, ammo ular 1958 yilda ixtiro qilingan CORDIC nomli samarali algoritmda qo'llaniladi.
  54. ^ Andraka, Rey (1998). "FPGA asosidagi kompyuterlar uchun CORDIC algoritmlari bo'yicha so'rov" (PDF). ACM. Shimoliy Kingstown, RI, AQSh: Andraka Consulting Group, Inc. 0-89791-978-5 / 98/01. Olingan 2016-05-08.
  55. ^ "Sinf matematikasi". Java platformasi standarti (8 nashr). Oracle korporatsiyasi. 2018 [1993]. Arxivlandi asl nusxasidan 2018-08-06. Olingan 2018-08-06.
  56. ^ "ldexp, ldexpf, ldexpl". cppreference.com. 2015-06-11. Arxivlandi asl nusxasidan 2018-08-06. Olingan 2018-08-06.
  57. ^ "8.3.9-bo'lim Logaritmik, eksponent va o'lchov". Intel 64 va IA-32 Architectures Software Developer qo'llanmasi 1-jild: Asosiy me'morchilik (PDF). Intel korporatsiyasi. Sentyabr 2016. 8-22 betlar.

Qo'shimcha o'qish

Tashqi havolalar