TWI753668B - 資訊處理裝置、電腦程式、記錄媒體及資訊處理方法 - Google Patents
資訊處理裝置、電腦程式、記錄媒體及資訊處理方法 Download PDFInfo
- Publication number
- TWI753668B TWI753668B TW109141100A TW109141100A TWI753668B TW I753668 B TWI753668 B TW I753668B TW 109141100 A TW109141100 A TW 109141100A TW 109141100 A TW109141100 A TW 109141100A TW I753668 B TWI753668 B TW I753668B
- Authority
- TW
- Taiwan
- Prior art keywords
- digits
- numbers
- extended
- precision machine
- information processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49989—Interval arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本發明提供可簡便地進行保證精度之數值計算的資訊處理裝置、程式及資訊處理方法。
使用機器數之確定數a1、b1進行運算,以滿足下述式(3)之方式決定絕對有效位數γ,該機器數係以下述式(1)及式(2)分別定義實數A及實數B。
A=a1+a2,|a1|≦Cha,-Cea≦a2<Cea...式(1)
B=b1+b2,|a1|≦Chb,-Ceb≦b2<Ceb...式(2)
(A,B)=(a,b)1+(a,b)2,-Cγ≦(a,b)2<Cγ...式(3)
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C表示基數。ha、hb表示擴展最大位數,該擴展最大位數為分別滿足|a1|≦Cha、|b1|≦Chb之最小之擴展位數,ha、hb表示之最大位數為整數。ea、eb、γ表示之絕對有效位數為整數。
Description
本技術係關於進行數值計算之資訊處理裝置、程式及資訊處理方法。本申請案以2019年11月27日於日本提出申請之日本專利申請編號特願2019-214678為基礎並主張優先權,藉由參照該申請案將其引用至本申請案中。
數值計算係以數值之方式解決難以解析之方式求解之問題的計算及其手法,該計算通常使用藉由電腦進行之浮點運算。作為浮點運算之標準規格,有IEEE(Institute of Electrical and Electronic Engineers)754。現在,數值計算程式大多以IEEE754方式實施,所成資產龐大。
浮點數運算存在一些缺點,有溢位(overflow)/欠位(underflow)、有效位數消去(cancellation of significant digits)、資訊遺失(loss of trailing digits)、加算殘留、捨入誤差(round-off error)等錯誤。因此,雙精度之浮點運算於μm等級時雖然並不會產生較大問題,但若為nm等級,則擔心有效位數可能不足。進而,若使用高次多項式之級數,則可以預料其容易產生計算誤差。
現在,已知將誤差考慮在內之運算(保證精度之數值計算),存在一面藉由軟體確認真正解存在於何種範圍內一面進行計算,對於連續數學之問題導出保證數學上真正準確之運算結果者。該藉由軟體保證精度之方法係將作
為運算對象之真值插入以能用運算處理裝置進行處理之浮點數作為兩端的區間內,藉此處理連續數之問題。用於以與數字同樣之方式處理該區間之四則運算稱為區間運算,藉由浮點進行該區間運算者稱為機械區間運算。然而,區間運算係以範圍表示實數,對範圍嚴格地進行四則運算,因此計算量大且複雜。
[先前技術文獻]
[專利文獻]
[專利文獻1]日本特開2004-05395號公報
本技術係鑒於此種習知實情而提出者,提供可簡便地進行保證精度之數值計算的資訊處理裝置、程式及資訊處理方法。
本申請發明者在盡心研究後,發現:藉由導入(高精度)機器數,可解決上述課題,該(高精度)機器數係藉由基數n,將屬於能以n進制表示之實數之部分集合中的數分為確定數與非確定數來進行表現。
即,本技術之資訊處理裝置具備:輸入部,其輸入以下述式(11)及式(12)分別定義實數A及實數B之高精度機器數;儲存部,其儲存上述高精度機器數;及運算部,其使用上述儲存部中儲存之高精度機器數之確定數a1、b1進行運算,以滿足下述式(13)之方式決定擴展絕對有效位數(γ+γ'),將該運算結果之高精度機器數儲存至上述儲存部中。
又,本技術之程式係使電腦執行具有以下步驟之處理:輸入步驟,其輸入以下述式(11)及式(12)分別定義實數A及實數B之高精度機器數;儲存步
驟,其將上述高精度機器數儲存至儲存部中;及運算步驟,其使用上述儲存部中儲存之高精度機器數之確定數a1、b1進行運算,以滿足下述式(13)之方式決定擴展絕對有效位數(γ+γ'),將該運算結果之高精度機器數儲存至上述儲存部中。
又,本技術之資訊處理方法具有:輸入步驟,其輸入以下述式(11)及式(12)分別定義實數A及實數B之高精度機器數;儲存步驟,其將上述高精度機器數儲存至儲存部中;運算步驟,其使用上述儲存部中儲存之高精度機器數之確定數a1、b1進行運算,以滿足下述式(13)之方式決定擴展絕對有效位數(γ+γ'),將該運算結果之高精度機器數儲存至上述儲存部中。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C表示基數。ha+ha'、hb+hb'表示擴展最大位數,上述擴展最大位數為分別滿足|a1|≦Cha+ha'、|b1|≦Chb+hb'之最小之擴展位數,ha、hb表示之最大位數為整數,ha'、hb'表示小數位數,該小數位數分別為0≦ha'<1、0≦hb'<1之小數。ea+ea'、eb+eb'、γ+γ'表示作為擴展位數之擴展絕對有效位數,ea、eb、γ表示之絕對有效位數為整數,ea'、eb'、γ'表示小數位數,該小數位數分別為0≦ea'<1、0≦eb'<1、0≦γ'<1之小數。(A,B)係實數A及實數B之運算結果,(a,b)1係確定數a1、b1之運算結果,(a,b)2係非確定數a2、b2之運算結果。
根據本技術,可簡便地進行保證精度之數值計算。其中,本發明之思考方式之不同之處在於:區間運算係將數字以範圍之形式進行處理,相對於此,機器數終究仍為一個數字,而未準確獲得非確定數,因此可取絕對有效位數範圍內之任意值。
11:輸入部
12:儲存部
13:運算部
14:控制部
21:CPU
22:GPU
23:ROM
24:RAM
25:操作輸入部
26:儲存器
27:輸入輸出介面
31:輸入部
32:儲存部
33:運算部
34:控制部
[圖1]係表示本技術之資訊處理裝置之功能構成之方塊圖。
[圖2]係表示實數與機器數之關係之圖。
[圖3]係用以對用於儲存機器數之緩衝區進行說明的圖。
[圖4]係表示用於發揮資訊處理裝置之功能之硬體構成的方塊圖。
[圖5]係用以對設為(a1+b1)=α+β+γ時進行說明之圖。
[圖6]係用以對求出Cm+β+Cα+m+Cm+n≦Cr之最小之整數r之方法進行說明的圖。
[圖7]係以C語言表現機器數之一例。
[圖8]係以C語言表現機器數之乘法、加法及除法之形式的一例。
[圖9]係以C語言計算Rump式之程式例。
[圖10]係將圖9所示之程式例轉換為使用機器數之程式的例。
[圖11]係表示正部分f1之計算結果之位元表現例之圖。
[圖12]係表示負部分f2之計算結果之位元表現例之圖。
[圖13]係表示差量f之計算結果之位元表現例之圖。
[圖14]係表示y=1/(1+x)之圖。
[圖15]係表示本技術之第2之實施形態之資訊處理裝置之功能構成的方塊圖。
[圖16]係表示實數與高精度機器數之關係之圖。
[圖17]係藉由電腦對高精度機器數進行數值表現之一例。
[圖18]係高精度機器數之定義之一例。
[圖19]係設為Cα+α'=A+B(A:確定數,B:非確定數)時A之32位元表現之一
例。
[圖20]係用於對求出擴展最大位數之小數位數h'之方法進行說明之圖。
[圖21]係表示為了求出擴展最大位數之小數位數h'而提取之32位元的圖。
[圖22]係用於對8位元-α'表進行說明之圖。
[圖23]係設為Cα'=A+B(A:確定數,B:非確定數)時A之32位元表現之一例。
[圖24]係用以對supCα'+supCβ+β'之具體計算方法進行說明之圖。
[圖25]係用以對2個高精度機器數之加法之確定數之位置進行說明的圖。
[圖26]係用以對修正(trim)處理進行說明之圖。
[圖27]係表示擴展位數加法表之一例之圖。
[圖28]係用以對高精度機器數之除法之確定數(b1/a1)之位置進行說明的圖。
[圖29]係設為Cα'=A+B(A:確定數,B:非確定數)時A之32位元表現之一例。
[圖30]係用以對infCα'-supCβ+β'之具體計算方法進行說明之圖。
[圖31]係表示雙精度浮點表現之圖。
[圖32]係表示藉由高精度機器數對10進制之「0.1」進行位元表現之一例的圖。
[圖33]係表示藉由高精度機器數對10進制之「1.1」進行位元表現之一例的圖。
[圖34]係表示將10進制之「0.1」及「1.1」轉換為高精度機器數後,使用高精度機器數計算「0.1+1.1」所得之結果之一例的圖。
[圖35]係表示以浮點計算10進制之「0.1+1.1」並轉換為高精度機器數所得之結果之一例的圖。
[圖36]係表示藉由高精度機器數對10進制之「0.0000001」進行位元表現之一例的圖。
[圖37]係表示藉由高精度機器數對10進制之「1.0」進行位元表現之一例的
圖。
[圖38]係表示將10進制之「0.0000001」及「1.0」轉換為高精度機器數後,使用高精度機器數對「1.0」加上100次「0.0000001」所得之結果之一例的圖。
[圖39]係表示以浮點進行對「1.0」加上100次「0.0000001」之計算,並將其結果轉換為高精度機器數所得之結果之一例的圖。
[圖40]係表示將10進制之「0.1」及「1.1」轉換為高精度機器數,用高精度機器數計算「0.1×1.1」所得之結果之一例的圖。
[圖41]係表示以浮點計算10進制之「0.1×1.1」並轉換為高精度機器數所得之結果之一例的圖。
[圖42]係表示以高精度機器數進行對10進制之「1.1」乘以100次「0.0000001」之計算所得之結果之一例的圖。
[圖43]係表示將10進制之「1」及「3」轉換為高精度機器數,用高精度機器數計算「1÷3」所得之結果之一例的圖。
[圖44]係表示藉由高精度機器數對作為分母之10進制之「0.1」進行位元表現之一例的圖。
[圖45]係表示藉由高精度機器數對作為分子之10進制之「1」進行位元表現之一例的圖。
[圖46]係表示使用高精度機器數計算「1÷0.1」所得之結果之一例的圖。
[圖47]係表示藉由高精度機器數對作為分母之10進制之「0.1」進行位元表現之一例的圖。
[圖48]係表示藉由高精度機器數對作為分子之10進制之「0.2」進行位元表現之一例的圖。
[圖49]係表示使用高精度機器數計算「0.2÷0.1」所得之結果之一例的圖。
<<1.第1實施形態>>
以下,參照圖式按下述順序對本技術之第1實施形態進行詳細說明。再者,毋庸置疑,本技術並不僅限定於以下之實施形態,可於不脫離本技術之主旨之範圍內進行各種變更。
1-1.資訊處理裝置
1-2.機器數之計算
1-3.具體例
<1-1.資訊處理裝置>
[功能構成]
圖1係表示本技術之資訊處理裝置之功能構成之方塊圖。如圖1所示,資訊處理裝置具備:輸入部11,其輸入以下述式(1)及式(2)分別定義實數A及實數B之機器數;儲存部12,其儲存機器數;及運算部13,使用儲存部12所儲存之機器數之確定數a1、b1進行運算,以滿足下述式(3)之方式決定絕對有效位數γ,將該運算結果之機器數儲存至儲存部12中。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C表示基數。ha、hb表示擴展最大位數,該擴展最大位數為分別滿足|a1|≦Cha、|b1|≦Chb之最小之擴展位數,ha、hb表示之最大位數為整數。ea、eb、γ表示之絕對有效位數為整數。(A,B)係實數A及實數B之運算結果,(a,b)1係確定數a1、b1之運算結果,(a,b)2係非確定數a2、b2之運算結果。
機器數之基數C並無特別限定,較佳為2、8或16之任一者。藉此,
可進行通用電腦所使用之2進制、8進制或16進制之計算之驗證。
圖2係表示實數與機器數之關係之圖。如圖2所示,機器數(a+b)係採用如測不準原理之觀點,實數A處於a-Cγ≦A<a+Cγ間之任一範圍。確定數a係至絕對有效位數(最小位)有效之數值,其數值有所保證。此處,絕對有效位數表示小數點以下可靠之位數,係誤差為Cγ之γ之值。於b=0(絕對有效位數γ無限小)之情形時,為數值確定之確定機器數,除此以外之情形時為數值不確定之非確定機器數。例如,於藉由基數C將π或2展開至絕對有效位數γ之情形時,展開至絕對有效位數γ之數值為確定數a,其後係成為非確定數b之非確定機器數。
輸入部11輸入以下述式(1)及式(2)分別定義實數A及實數B之機器數。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C表示基數。ha、hb表示擴展最大位數,該擴展最大位數為分別滿足|a1|≦Cha、|b1|≦Chb之最小之擴展位數,ha、hb表示之最大位數為整數。ea、eb、γ表示之絕對有效位數為整數。
具體而言,輸入部11例如輸入設定了符號(sign)、最高位(high order max)、最低位(low order max)、絕對有效位數(absolute effective digit)、陣列數(number of array)之機器數。
儲存部12用以儲存機器數,係所謂之緩衝區。基於以輸入部11輸入之最高位及最低位確保緩衝區。
圖3係用以對用來儲存機器數之緩衝區進行說明之圖。如圖3所示,緩衝區中,儲存有複數個將同一類型之資料排成一行而成之陣列(array)。例
如藉由確保10行32位元陣列,可於電腦之內部處理之2進制(C=2)中確保320位。
又,於8進制(C=8)之情形時,藉由以小數點為起點每3位進行分隔,最大可確保106位,於16進制(C=16)之情形時,藉由以小數點為起點每4位進行分隔,最大可確保80位。
運算部13使用儲存部12所儲存之機器數之確定數a1、b1進行運算,以滿足下述式(3)之方式決定絕對有效位數γ,將該運算結果之機器數儲存至儲存部12中。
此處,C表示基數。γ為指數部,係絕對有效位數。(A,B)係實數A及實數B之運算結果,(a,b)1係確定數a1、b1之運算結果,(a,b)2係非確定數a2、b2之運算結果。
機器數之運算係設實數A及實數B分別處於a1-Cea≦A<a1+Cea及b1-Ceb≦B<b1+Ceb間之任一範圍內而進行計算,其計算結果亦為機器數,因此滿足式(3)。機器數之運算係分為確定數a1、b1與非確定數a2、b2,對確定數a1、b1直接進行計算,根據各種條件決定計算結果之絕對有效位數γ。
又,機器數之運算中,可指定絕對有效位數之最大值。尤其,可對除法或root、sin、cos等函數指定絕對有效位數。藉此,可保證絕對有效位數以上之數值。
機器數之運算亦可認為係區間運算之特別之態樣。但,區間運算係以範圍表示實數,對範圍嚴格地進行四則運算,相對於此,不同之處在於機器數之四則運算中係以絕對有效位數控制誤差。又,機器數之運算係求出代替實數之數字系統後考慮其應用,因此根本之出發點便與區間運算之觀點不同。因此,機器數之計算本身與區間運算相比更為單純,將誤差(不明確之部分)之評價作為
絕對有效位數,從而將計算簡化。
根據此種資訊處理裝置,可僅對需要絕對有效位數之部分藉由機器數程式館(library)進行計算,可確認計算結果之絕對有效位數,因此可簡便地進行保證精度之數值計算。
又,較佳為資訊處理裝置進而具備控制部14,該控制部14將實數之數值計算程式轉換為機器數之數值計算程式,執行機器數之數值計算程式,將運算部13中之運算結果之機器數儲存至儲存部12中。藉此,於執行機器數之數值計算程式之過程中,可保持各變數之絕對有效位數之歷程,從而可檢查是否獲得最終所需之絕對有效位數。又,亦可為了獲得欲求出之絕對有效位數之計算而反算所需的各變數之值之絕對有效位數。
[硬體構成]
圖4係表示用以發揮資訊處理裝置之功能之硬體構成的方塊圖。如圖4所示,資訊處理裝置具有進行程式之執行處理之CPU(Central Processing Unit)21、進行運算處理之GPU(Graphics Process ing Unit)22、儲存藉由CPU 21執行之程式之ROM(Read Only Memory)23、展開程式及資料之RAM(Random Access Memory)24、接收使用者之各種輸入操作之操作輸入部25、固定保存程式及資料之儲存器26、及輸入輸出資料之輸入輸出介面27。即,圖4所示之資訊處理裝置2係所謂之電腦。
CPU 21可實現圖1所示之功能構成中之運算部13及控制部14之處理,以機器數程式館運算機器數,將運算結果之機器數儲存至儲存部12中。又,CPU 21例如讀出儲存器26中記錄之機器數之數值計算程式,於RAM 24展開並執行,藉此控制各區塊之動作。
GPU 22具有視訊記憶體(VRAM),可根據來自CPU 21之要求進行繪圖處理及計算處理,亦可利用機器數程式館運算機器數。ROM 23例如為僅
可進行讀入之非揮發性記憶體,記憶資訊處理裝置2所具有之各區塊之動作所需之常數等資訊。RAM 24係揮發性記憶體,不僅用作動作程式之展開區域,亦用作暫時記憶資訊處理裝置2所具有之各區塊之動作中輸出之中間資料等的儲存區域。
操作輸入部25可實現圖1所示之功能構成中輸入部11之處理,係對資訊處理裝置進行輸入操作時使用之使用者介面。操作輸入部25根據使用者之輸入操作,對CPU 21輸出數值計算程式處理之執行或停止等命令。
儲存器26記錄RAM 24中展開之數值計算程式等。再者,作為儲存器26,可使用HDD(Hard disk drive)、SSD(Solid State Drive)、光學驅動機等。輸入輸出介面27可輸出藉由GPU 22生成之圖像至顯示裝置。
此種硬體構成中,圖1所示之功能構成係藉由利用CPU 21、GPU 22、ROM 23、RAM 24等執行之軟體之協作來實現。又,軟體程式可記憶於光碟或半導體記憶體等記錄媒體中發行,亦可為經由網際網路等下載之構成。
<2.機器數之計算>
以下,設機器數之基數為2(C=2),對運算方法進行說明。
[加法]
設為分別以式(1)及式(2)定義實數A及實數B之機器數。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C表示基數。ha、hb表示擴展最大位數,該擴展最大位數為分別滿足|a1|≦Cha、|b1|≦Chb之最小之擴展位數,ha、hb表示之最大位數為整數。ea、eb、γ表示之絕對有效位數為整數。
以下,代替絕對有效位數ea、eb、γ,分別使用m、n、r進行說明。
設r為Cm+Cn≦Cr之最小之整數。
m=n時r=m+1,m≠n時r=max(m,n)+1,因此r=max(m,n)+1。
A+B=(a1+b1)+(A+B)2
(a1+b1)為確定數,(A+B)2為非確定數,滿足-Cr≦(A+B)2<Cr,r為絕對有效位數。確定數(a1+b1)之最小位有時小於絕對有效位數。按(a1+b1)之符號分為不同態樣進行說明。
圖5係用以說明設(a1+b1)=α+β+γ時之圖。如圖5所示,設(a1+b1)=α+β+γ,設α為(r+1)位以上之部分,β為r位之部分,γ為(r-1)位以下之部分。
γ>0((a1+b1)>0)時,(α+β)-Cr-1≦A+B<(α+β)+Cr-1
γ<0((a1+b1)<0)時,(α+β)-Cr+1≦A+B<(α+β)+Cr+1,因此(α+β)-Cr+1≦A+B<(α+β)+Cr+1成立,(α+β)為確定數,絕對有效位數為r+1。
γ=0時,(α+β)-Cr≦A+B<(α+β)+Cr成立,(α+β)為確定數,絕對有效位數為r。
[乘法]A×B=(a1+a2)×(b1+b2)=a1b1+a2b1+a1b2+a2b2
設A、B均為正。
a1≦Cα;α為不等號成立之最小之整數。較佳為log2|a1|。
b1≦Cβ;β為不等號成立之最小之整數。較佳為log2|b1|。
-CmCβ≦a2b1<CmCβ
-CαCn≦a1b2<CαCn
-CmCn<a2b2≦CmCn
設r為Cm+β+Cα+n+Cm+n≦Cr之最小之整數。
A×B=a1b1+(A×B)2
a1b1為確定數,(A×B)2為非確定數,滿足-Cr≦(A×B)2<Cr,r為絕對有效位數。確定數a1b1之最小位有時小於有效位數。
將無意義位數之部分納入考慮後的確定數與絕對有效位數係與加法中為正之情形時相同。
圖6係用以對求出Cm+β+Cα+n+Cm+n≦Cr之最小之整數r之方法進行說明的圖。圖6中,各框表示2位元陣列之位置,白點表示Cm+β、Cα+n、Cm+n之位元位置,黑點表示Cr之位元位置,虛線點表示該位元為空。
將Cm+β+Cα+n+Cm+n≦Cr之最小之整數設為r,則Cm+β+Cα+n+Cm+n=Cr之情形僅有態樣3。Cm+β+Cα+n+Cm+n≦Cr之r於(m+β)、(α+n)、(m+n)為態樣1、態樣2時為最大值+2(r=max(m,n)+2),除此以外為最大值+1(r=max(m,n)+1)。Cm+β+Cα+n+Cm+n<Cr之r於(m+β)、(α+n)、(m+n)為態樣1、態樣2、態樣3時為最大值+2(r=max(m,n)+2),除此以外為最大值+1(r=max(m,n)+1)。
<3.具體例>
其次,對使用上述機器數進行之軟體之計算例進行說明。圖7係以C語言表現機器數之一例,圖8係以C語言表現機器數之乘法、加法及除法之形式之一例。
如圖7所示,機器數藉由符號s(sign)、最高位h(high order max)、最低位l(low order max)、絕對有效位數e(absolute effective digit)、陣列數n(number of array)、陣列a而定義。符號s係當s=1時為正,s=-1時為負。最高位h為|確定數|≦log2h之值。最低位l為確定數之2進制之最小位。絕對有效位數e為-2e≦非確定數<2e之最小之整數。陣列數n係儲存確定數之無符號整數之個數。陣列a係儲存確定數之無符號整數之陣列。再者,有效位數k為(log2|確定數|-絕對有效位數)≦k之最小之整數。
圖8所示之機器數之乘法、加法及除法係以機器數作為變數。除法的情形下需要設定絕對有效位數。
[Rump式之計算]
將a=77617、b=33096代入S.M.Rump所提出之下述式,對所得之f(a,b)之值進行評價。
f(x,y)=333.75y6+x2(11x2y2-y6-121y4-2)+55y8+x/2y
於IBM之大型主機(mainframe)S/370上改變運算精度執行該計算,得到以下之結果。
單精度(10進制約8位):f(x,y)≒1.1720603...
雙精度(10進制約17位):f(x,y)≒1.17206039400531...
擴展精度(10進制約34位):f(x,y)≒1.1720603940053178...
真值係f(a,b)=-0.827386...,S/370上之計算為錯誤結果,甚至符號亦不正確。
圖9係以C語言計算Rump式之程式例,圖10係將圖9所示之程式轉換為使用機器數之程式者。如圖10及圖9所示,計算正部分f1、負部分f2,並計算其差量f。又,「inverse_digital_expression(&k2y,-200,&k2yinv,&status)」之除法中,設絕對有效位數為-200。
f1=333.75y6+x2×11x2y2+55y8+x/2y
f2=x2×y6+x2×121y4+x2×2
f=f1-f2
圖11係表示正部分f1之計算結果之位元表現之圖,圖12係表示負部分f2之計算結果之位元表現之圖,圖13係表示差量f之計算結果之位元表現之圖。合併顯示正部分f1、負部分f2之位元表現時,到黑框為止,位元之排列一致。可知要正確計算差量f(=f1-f2),需要139位元以上之位數。差量f之計算結果為-0.8273960599...,雖與真值略有不同,與S/370上之計算相比已經非常優異。
[級數之計算]
1/(1-x)=1-x+x2+...+(-1)nxn...(-1<x<1)
評價馬克勞林展開式。對於1-1/(1-x),如-x+x2+...+(-1)nxn...依次加項則應趨近於0。
圖14係表示y=1/(1+x)之圖。如圖14所示,將δ分別設定為1/1000、1/10000、1/100000、1/1000000,將該δ進行100等分後進行上述計算而評價誤差。項數n設為50進行計算。
表1中表示雙精度浮點之計算結果。誤差未因δ之值發生變化。相對於求取級數和時之初始值,中途之級數之各項亦為其以下之較小值之和,因此可知有效位數相對於初始值變小。存在即便使用雙精度浮點數亦難以計算級數之和之可能性。另一方面,於機器數之計算中,設為有效位數-500進行計算時結果為0。
<<2.第2實施形態>>
以下,參照圖式,按下述順序對本技術之第2實施形態進行詳細說明。再者,毋庸置疑,本技術並不僅限定於以下之實施形態,可於不脫離本技術之主旨之範圍內進行各種變更。
2-1.資訊處理裝置
2-2.高精度機器數之計算
2-3.具體例
於第1實施形態之機器數之乘法計算中,絕對有效位數會變多3位左右,因此若反覆進行乘法則機器數之精度會急遽降低。又,於絕對有效位數不同之加法中,絕對有效位數亦必定+1,因此若反覆進行加法,則精度確實會降低。
於是,第2實施形態中,代替第1實施形態之機器數,使用高精度機器數。高精度機器數中,使用擴展位數(擴展最大位數、擴展絕對有效位數)(α+α')代替機器數之位數(最大位數、絕對有效位數)。此處,α係整數,其值為位數。α'係小數位數,該小數位數為0≦α'<1之小數,例如α'可設為a/2n(0≦a<2n)。
最初生成高精度機器數時,擴展絕對有效位數為整數。擴展絕對有效位數之小數位數可抑制反覆進行四則運算時之精度降低,尤其於絕對有效位數有差異之情形時非常有效。
<2-1.資訊處理裝置>
[功能構成]
圖15係表示本技術之第2實施形態之資訊處理裝置之功能構成之方塊圖。如圖15所示,資訊處理裝置具備:輸入部31,其輸入以下述式(11)及式(12)分別定義實數A及實數B之高精度機器數;儲存部32,其儲存高精度機器數;及運算部33,其使用儲存部32所儲存之高精度機器數之確定數a1、b1進行運算,以滿足下述式(13)之方式決定擴展絕對有效位數(γ+γ'),將該運算結果之高精度機器數儲
存至儲存部32中。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C表示基數。ha+ha'、hb+hb'表示擴展最大位數,上述擴展最大位數為分別滿足|a1|≦Cha+ha'、|b1|≦Chb+hb'之最小之擴展位數,ha、hb表示之最大位數為整數,ha'、hb'表示小數位數,該小數位數分別為0≦ha'<1、0≦hb'<1之小數。ea+ea'、eb+eb'、γ+γ'表示作為擴展位數之擴展絕對有效位數,ea、eb、γ表示之絕對有效位數為整數,ea'、eb'、γ'表示小數位數,該小數位數分別為0≦ea'<1、0≦eb'<1、0≦γ'<1之小數。(A,B)係實數A及實數B之運算結果,(a,b)1係確定數a1、b1之運算結果,(a,b)2係非確定數a2、b2之運算結果。
機器數之基數C並無特別限定,較佳為2、8或16之任一者。藉此,可進行通用電腦所使用之2進制、8進制或16進制之計算之驗證。
又,較佳為小數位數ha'、hb'、ea'、eb'、γ'分別以如下方式表示:ha'/2n(0≦ha'<2n)、hb'/2n(0≦hb'<2n)、ea'/2n(0≦ea'<2n)、eb'/2n(0≦eb'<2n)、γ'/2n(0≦γ'<2n),n為自然數。n較佳為32以下,更佳為16以下,進而較佳為8以下。若使n變大則精度提昇,但計算成本上升。再者,若將小數位數ha'、hb'、ea'、eb'、γ'設為0,則為第1實施形態之機器數。
圖16係表示實數與高精度機器數之關係之圖。如圖16所示,高精度機器數(a1+a2)係採用如測不準原理之觀點,實數A處於a1-Cγ+γ'≦A<a1+Cγ+γ'間之任一範圍。確定數a1係至擴展絕對有效位數(最小位)有效之數值,其數值有所保證。此處,擴展絕對有效位數表示小數點以下之可靠之位數,係誤差為Cγ+γ'之γ+γ'之值。又,γ'係0≦γ'<1之小數位數。於a2=0(擴展絕對有效位數無限小)之情
形時,為數值確定之確定機器數,除此以外之情形時為數值不確定之非確定機器數。
輸入部31輸入以下述式(11)及式(12)分別定義實數A及實數B之高精度機器數。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C表示基數。ha+ha'、hb+hb'表示擴展最大位數,上述擴展最大位數為分別滿足|a1|≦Cha+ha'、|b1|≦Chb+hb'之最小之擴展位數,ha、hb表示之最大位數為整數,ha'、hb'表示小數位數,該小數位數分別為0≦ha'<1、0≦hb'<1之小數。ea+ea'、eb+eb'表示作為擴展位數之擴展絕對有效位數,ea、eb表示之絕對有效位數為整數,ea'、eb'表示小數位數,該小數位數分別為0≦ea'<1、0≦eb'<1之小數。
具體而言,輸入部31例如輸入設定有符號(sign)、最高位亦即最大位數h(high order max)、最大位數之小數位數h'(high order max sub)、最低位亦即最小位數l(low order max)、絕對有效位數e(effective digit)、絕對有效位數之小數位數e'(effective digit sub)、陣列數a(number of array)等之高精度機器數。
儲存部32用於儲存高精度機器數,係所謂之緩衝區。基於以輸入部31輸入之最高位h及最低位l確保緩衝區。例如,如圖3所示,緩衝區中可儲存複數個將同一類型之資料排列成一行而成之陣列(array)。
運算部33使用儲存部32所儲存之機器數之確定數a1、b1進行運算,以滿足下述式(13)之方式決定擴展絕對有效位數(γ+γ'),將該運算結果之機器數儲存至儲存部32中。
此處,C表示基數。γ+γ'表示擴展絕對有效位數,γ表示之絕對有效位數為整數,γ'表示小數位數,該小數位數為0≦γ'<1之小數。(A,B)係實數A及實數B之運算結果,(a,b)1係確定數a1、b1之運算結果,(a,b)2係非確定數a2、b2之運算結果。
高精度機器數之運算係設為實數A及實數B分別處於a1-Cea+ea'≦A<a1+Cea+ea'及b1-Ceb+eb'≦B<b1+Ceb+eb'間之任一範圍來進行計算,其計算結果亦為高精度機器數,因此滿足式(13)。高精度機器數之運算分為確定數a1、b1與非確定數a2、b2,對確定數a1、b1直接進行計算,根據各種條件決定計算結果之擴展絕對有效位數(γ+γ')。再者,有效位數k係logC|確定數|-擴展絕對有效位數(γ+γ')≦k之最小之整數。
加法(A+B)之計算中,運算部33可將滿足下述式(14)之最小之擴展位數設為擴展絕對有效位數。
乘法(A×B)之計算中,運算部33可將滿足下述式(15)之最小之擴展位數設為擴展絕對有效位數。
除法(B/A)之計算中,運算部可分別使用ha+ha'-1/256、hb+hb'-1/256代替ha+ha'、hb+hb',以下述式(16)及式(17)定義之高精度機器數對下述式(18)進行評價,從而決定擴展絕對有效位數。
高精度機器數之四則運算中,需要進行|a|≦infCα+α'(C:基數,a:確定數)、supCα+α'+supCβ+β'≦infCγ+γ'(C:基數)、infCα+α'-supCβ+β'≧supCγ+γ'(C:基數)等計算。再者,supA表示A之上限值,infA表示A之下限值。
運算部33較佳為針對|a|≦infCα+α',使用α=0時a相對於α'之值之一覽表進行運算,針對supCα+α'+supCβ+β'≦infCγ+γ',使用α=0時γ、γ'相對於α'、β、β'之值之一覽表進行運算,針對infCα+α'-supCβ+β'≧supCγ+γ',使用α=0時γ、γ'相對於α'、β、β'之值之一覽表進行運算。藉此,可使高精度機器數之計算高速化。
又,運算部33較佳為針對supCα+α'+supCβ+β'≦infCγ+γ',基於infCγ+γ'-(supCα+α'+supCβ+β')之差量對確定數進行修正處理。藉此,可抑制反覆進行運算之情形時之計算成本。又,針對infCα+α'-supCβ+β'≧supCγ+γ',亦同樣基於infCα+α'-supCβ+β'-supCγ+γ'之差量對確定數進行修正處理,可抑制反覆進行運算之情形時之計算成本。
又,資訊處理裝置較佳為進而具備控制部34,該控制部34將實數之數值計算程式轉換為高精度機器數之數值計算程式,執行高精度機器數之數值計算程式,將運算部33中之運算結果之機器數儲存至儲存部32中。具體而言,較佳為將浮點表現轉換為高精度機器數。藉此,於執行高精度機器數之數值計算程式之過程中,可保持各變數之擴展絕對有效位數之歷程,從而可檢查是否能獲得最終所需之擴展絕對有效位數。又,亦可反算出為了獲得欲求出之擴展絕對有效位數之計算所需的各變數之值之絕對有效位數。
根據此種資訊處理裝置,可僅對需要擴展絕對有效位數之部分藉由高精度機器數程式館進行計算,可確認計算結果之擴展絕對有效位數,因此可
簡便地進行保證精度之數值計算。
[硬體構成]
資訊處理裝置可與第1實施形態同樣具備例如圖4所示之硬體構成。圖4所示之硬體構成中,圖15所示之功能構成可藉由利用CPU 21、GPU 22、ROM 23、RAM 24等執行之軟體之協作實現。又,軟體程式可記憶於光碟或半導體記憶體等記錄媒體中發行,亦可為經由網際網路等下載之構成。又,亦可將圖15所示之功能構成編入FPGA(Field Programmable Gate Array)。
<2.高精度機器數之計算>
以下,將高精度機器數之基數設為2(C=2),將指數部之小數位數ha'、hb'、ea'、eb'、γ'分別設為ha'/28(0≦ha'<28)、hb'/28(0≦hb'<28)、ea'/28(0≦ea'<28)、eb'/28(0≦eb'<28)、γ'/28(0≦γ'<28),對運算方法進行說明。但,為了簡化表述,有時將指數部之小數位數記為ha'、hb'、ea'、eb'、γ'。
n=8之情形時,例如於supCα+α'+supCβ+β'≦infCγ+γ'之關係中,infCγ+γ-(supCα+α'+supCβ+β')之差量於特定情形時以外不為0,產生間隙。捨去該間隙以下之部分亦不會對計算造成影響,因此可進行修正處理,從而可抑制反覆進行運算之情形時之計算成本。
圖17係藉由電腦對高精度機器數進行數值表現之一例,圖18係高精度機器數之定義之一例。如圖17所示,第1標頭部具有1位元之符號s、7位元之陣列a之尺寸。第2標頭部具有16位元之最大位數h、8位元之最大位數之小數位數h'、16位元之最小位數l、16位元之絕對有效位數e、8位元之絕對有效位數之小數位數e'。
尾數部中儲存32位元之陣列a,陣列a之最大數為127。陣列a為無符號整數值,因此尾數部最大為127×32=4064位元。其可藉由10進制表現1223位。例如,1光年為9兆5000億km<10兆km=1013km=1019mm=1025nm,因此
若將宇宙之大小設為137億光年,約為100億光年,則100億光年=1010光年=1035nm,若以nm表示宇宙之大小,則僅需35位(10進制)。相對於此,高精度機器數可進行位數非常大之運算。
最大位數(最高位)h、最小位數(最低位)l、絕對有效位數(有效位)e可使用帶符號之16位元整數。帶符號之16位元整數為±32768,因此可充分表現。
再者,絕對有效位數e為-32768(2進制表現為1000000000000000)時,誤差可視為0。
最大位數之小數位數h'、絕對有效位數之小數位數e'例如可使用C語言之unsigned char變數等無符號8位元整數。最大位數之小數位數h'為0時有兩種意義。h=l時為0,h>l時,h'=256,最大位數為(h+l)。
[非確定數0之處理]
非確定數之範圍係使用擴展絕對有效位數,表示為-Ce+e'≦(非確定數)<Ce+e'。若將絕對有效位數e設為-∞,則非確定數可取之範圍無限接近0。利用電腦表現高精度機器數時,絕對有效位數e之最小值為-32768,將該值視為-∞。定義e→-∞時,非確定數為0。高精度機器數之計算中可取之絕對有效位數e之值為-32767至32767之值,超過該範圍時視為計算錯誤。
[高精度機器數中之0]
高精度機器數中之0之表現定義如下。
s(符號)→0
h(最大位數)→0
hd(最大位數之小數位數)→0
l(最小位數)→0
e(絕對有效位數)→計算值
ed(絕對有效位數之小數位數)→計算值
陣列a→a[0]=0
高精度機器數中之陣列a之尺寸不變,但例外地將陣列a之最小之值設為0。0以外之機器數中,陣列a之第0位元必然為1。
[擴展位數表]
圖19係設為Cα+α'=A+B(A:確定數,B:非確定數)時A之32位元表現之一例。B為-Cα-31≦B<Cα-31。為了用於高精度機器數之計算之高速化,較佳為針對α=0時之α',預先製作輸出A之值之擴展位數表。
[擴展最大位數之小數位數h']
圖20係用以對求出擴展最大位數之小數位數h'之方法進行說明的圖,圖21係表示為了求出擴展最大位數之小數位數h'而提取之32位元的圖。此處,設為最大位數h與最小位數l已經確定。最大位數h表示將陣列a設為位元串時之最高位,最小位數l表示將陣列a設為位元串時之最低位之位數。
如圖20及圖21所示,從有效位元長之最前面提取32位元。於有效位元長長於32位元時,將位值設為1,為32位元以下時,將位值設為0。
使用所提取之32位元之最前面9位元,使其除以256,求出下限值大於所得值之α'。該處理係藉由參照由8位元之整數輸出α'之8位元-α'表進行。
圖22係用以說明8位元-α'表之圖。由8位元-α'表確認上位之α',求出具有較32位元大之下限值之Cα'。具體而言,如圖22所示,將8位元數設定於左側********部分時,參照上述擴展位數表,求出下限值為其以上之α',設為h'。
[加法]
設為分別以式(11)及式(12)定義實數A及實數B之高精度機器數。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確
定數。C=2。ha+ha'、hb+hb'表示擴展最大位數,該擴展最大位數為分別滿足|a1|≦2ha+ha'、|b1|≦2hb+hb'之最小之擴展位數,ha、hb表示之最大位數為整數,ha'、hb'表示分別為ha'/256、hb'/256之小數位數。ea+ea'、eb+eb'表示作為擴展位數之擴展絕對有效位數,ea、eb表示之絕對有效位數為整數,ea'、eb'表示小數位數,該小數位數分別為ea'/256、eb'/256之小數。
A+B以下述式(21)~(23)表示。
求出滿足式(23)之最小之擴展位數。Cea+ea'、Ceb+eb'、Cγ+γ'等之值以高精度機器數表現,求出supCea+ea'+supCeb+eb'≦infCγ+γ'。此處supA表示A之上限值,infA表示A之下限值。
[非確定數為0之情形時]
式(21)所示之A+B中,於實數B之非確定數b2為0之情形時,式(22)所示之不等式成為下述式(24)。
進而,於實數A之非確定數a2為0之情形時,A+B之非確定數成為0。於該情形時,不進行低位之修正處理。
[擴展位數加法表]
如式(23)所示之supCea+ea'+supCeb+eb'≦infCγ+γ'之計算係使用擴展位數加法表,該擴展位數加法表係對Cα'、Cβ+β'輸出滿足Cα'+Cβ+β'≦Cγ+γ'之最小之擴展位數(γ+γ')
之表。此處,0≧β,α'、β'分別為α'/28、β'/28。
圖23係設為Cα'=A+B(A:確定數,B:非確定數)時A之32位元表現之一例。B為-C-31≦B<C-31。此處,α'為α'/28。然後,求出包含Cα'+Cβ+β'可取之最大值的Cγ+γ'之最小之擴展位數。具體而言,求出supCα'+supCβ+β'≦infCγ+γ'之Cγ+γ',計算其差(infCγ+γ'-(supCα'+supCβ+β'))。
圖24係用以說明supCα'+supCβ+β'之具體計算方法之圖。以32位元表示supCα'及supCβ+β',使supCβ+β'之最低位元對準64位元之最低位元,以無符號64位元整數進行計算。若進行此處理則不會超出64位元之範圍。將supCα'與supCβ+β'複製至64位元,使supCα'向左移動-β位元。然後,計算該等值之和。計算該和之過程中,首先求出不為0之位元,使infCγ之最高位元之位置對準該位元。
可知確定數中,γ+β之位置為原本之位數之位置、自該位置移動了差量之位數後的位數以後可捨去。即,該差被吸收至差量中。
圖25係用以說明2個高精度機器數之加法之確定數之位置的圖。
如圖25所示,2個機器數之加法之確定數可藉由非確定數之範圍(supCα'+supCβ+β)控制。為了以Cγ+γ'控制該確定數,求出supCα'+supCβ+β'≦infCγ+γ'之擴展位數(γ+γ')。
將其差(infCγ+γ'-(supCα'+supCβ+β'))設為δ,則即便使確定數之位置A移動±δ,若誤差為Cγ+γ'之範圍,則包含高精度機器數(確定數+非確定數)。若使確定數之位置A移動±δ,則±δ誤差整體變大,但為了控制Cα'+Cβ+β'≦Cγ+γ',允許有δ之誤差。另一方面,利用該δ之誤差對確定數之低位進行修正。
圖26係用以說明修正處理之圖。如圖26所示,已使γ之位置至斜線部分之最前面之位置偏移。偏移值表示從γ起偏移值之位數以下可以無視。具體計算中,對(γ-偏移)位以下進行修正。藉此,可防止計算值之位數變大。
Cα+α'+Cβ+β'≦Cγ+γ'中,當(α+α')與(β+β')一致時,γ=2α,γ'=α',偏移值成為∞。實際上,以16位元整數之最大值65535(程式內為bit16max)表示。此
時,差量為0,因此計算值之位數變大。對於該情形時之處理,進行與後述除法相同之處理,將(γ+γ')+1/256設為擴展絕對有效位數,使用Cγ+γ'與Cγ+γ'+1/256之差量,抑制計算值之位數。
擴展位數加法表係根據β(0至-32之整數)分類,對α'、β'輸出γ、γ'、差量之位數。
(1)β=0、α'≧β'之情形時,求出supCα'+supCβ+β'≦infCγ+γ'之擴展位數(γ+γ'),對其差(infCγ+γ'-(supCα'+supCβ+β'))進行評價,藉此製作α'、β'、γ、γ'及差量之位數之表。
(2)β為-1至-9之情形時,與(1)同樣地,求出supCα'+supCβ+β'≦infCγ+γ'之擴展位數(γ+γ'),對其差(infCγ+γ'-(supCα'+supCβ+β'))進行評價,藉此製作α'、β'、γ、γ'及差量之位數之表。
(3)β為-10至-32之情形時,無論β'之值如何,均為γ=-β,γ'=α'+1。但,α'=255時,為γ=-β+1,γ'=0。又,對其差(infCγ+γ'-(supCα'+supCβ+β'))進行評價,藉此製作α'、β'、γ、γ'及差量之位數之表。
(4)β為-33以下之情形時,與(3)同樣地,無論β'之值如何,均為γ=-β,γ'=α'+1。但,α'=255時,為γ=-β+1,γ'=0。對其差(infCγ+γ'-(supCα'+supCβ+β'))進行評價,藉此製作α'、β'、γ、γ'及差量之位數之表。再者,差量之位數為9以下。
(5)β=0、α'=β'之情形時,差量之位數設為65535。其為無符號單精度整數之最大值。於該情形時,不進行陣列a之修正處理。
圖27係表示擴展位數加法表之一例之圖。圖27所示之表表示β=0時針對α'、β'之值的擴展位數(γ+γ')及偏移值。對於第4列,驗證是否為22/256+20≦21+2/256之最小之擴展位數(γ+γ')。左邊及右邊之計算結果如下。
22/256+20=2.0054299011...
21+2/256=2.010859802...
又,21+1/256=2.005422550...,因此21+2/256為最小之值。
又,差量(21+2/256-(22/256+20))為0.0054299009...。使該值乘以256則成為1.3900546304。其表示當使差量之值向左移動8位元時,最前面之位置為γ之位置。因此,從γ向右移動8位元,將差量之位數9以後設為0。
[乘法]
設為分別以式(11)及式(12)定義實數A及實數B之高精度機器數。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C=2。ha+ha'、hb+hb'表示擴展最大位數,該擴展最大位數為分別滿足|a1|≦2ha+ha'、|b1|≦2hb+hb'之最小之擴展位數,ha、hb表示之最大位數為整數,ha'、hb'表示分別為ha'/256、hb'/256之小數位數。ea+ea'、eb+eb'表示作為擴展位數之擴展絕對有效位數,ea、eb表示之絕對有效位數為整數,ea'、eb'表示小數位數,該小數位數分別為ea'/256、eb'/256之小數。
A×B以下述式(31)表示。
[數式16]A×B=(a 1+a 2)×(b 1+b 2)=a 1 b 1+a 2 b 1+a 1 b 2+a 2 b 2…(31)
以下,將ha、ha'、hb、hb'分別記為ma、ma'、mb、mb'進行說明。
(1)A>0、B>0之情形時,a1≦Cma+ma',b1≦Cmb+mb',滿足下述式(32)~(34)。
整理式(32)~(34),以下述式(35)~(37)表示。
設為下述式(38),則式(31)以下述式(39)表示,求出滿足式(40)之擴展位數即可。
要求出該擴展位數,求出滿足下述式(41)之最小之擴展位數即可。
又,於實數B之非確定數b2為0之情形時,式(38)成為下述式(42)。
實數A、B兩者之非確定數為0之情形時,成為γ→-∞,絕對有效位數e之值成為-32768(0b1000000000000000)。實數A、B之任一者之非確定數為0時,不進行低位數之修正處理。
(2)A>0、B<0之情形時,a1≦Cma+ma',-b1≦Cmb+mb',滿足下述式
(43)~(45)。
整理式(43)~(45),以下述式(46)~(48)表示。
若設為下述式(49),則式(31)以下述式(50)表示,求出滿足式(51)之擴展位數即可。
非確定數為0時之處理與(1)A>0、B>0之情形時相同。
(3)A<0、B>0之情形時,-a1≦Cma+ma',b1≦Cmb+mb',滿足下述式(52)~(54)。
整理式(52)~(54),以下述式(55)~(57)表示。
若設為下述式(58),則式(31)以下述式(59)表示,求出滿足式(60)之擴展位數即可。
非確定數為0時之處理與(1)A>0、B>0之情形時相同。
(4)A<0、B<0之情形時,-a1≦Cma+ma',-b1≦Cmb+mb',滿足下述式(61)~(63)。
整理式(61)~(63),以下述式(64)~(66)表示。
若設為下述式(67),則式(31)以下述式(68)表示,求出滿足式(69)之擴展位數即可。
非確定數為0時之處理與(1)A>0、B>0之情形時相同。
[除法]
設為分別以式(11)及式(12)定義實數A及實數B之高精度機器數。
此處,a1、b1係已確定數值之確定數,a2、b2係未確定數值之非確定數。C=2。ha+ha'、hb+hb'表示擴展最大位數,該擴展最大位數為分別滿足|a1|≦2ha+ha'、|b1|≦2hb+hb'之最小之擴展位數,ha、hb表示之最大位數為整數,ha'、hb'表示分別為ha'/256、hb'/256之小數位數。ea+ea'、eb+eb'表示作為擴展位數之擴展絕對有效位數,ea、eb表示之絕對有效位數為整數,ea'、eb'表示小數位數,該小數位數分別為ea'/256、eb'/256之小數。
B/A時,使用ha+ha'-1/256、hb+hb'-1/256代替擴展最大位數(ha+ha'、hb+hb'),設為以下述式(71)及式(72)定義之高精度機器數。
B/A以下述式(73)表示。
對式(73)進行評價。
該式(74)假設Cha+ha'-1/256-Cea+ea'不為0。該值成為0以下表示A可能為0,因此除法不成立。
求出滿足式(75)之擴展位數(Ha+Ha'),則為下述式(76)。Ha+Ha'可參照擴展位數減法表求出,該擴展位數減法表係對Cα'、Cβ+β'輸出滿足Cα'-Cβ+β'≧Cγ+γ'之最大之擴展位數(γ+γ')的表。
其次,將b2a1-b1a2分為各項進行評價。a1>0時以下述式(77)表示,a1<0時以下述式(78)表示,b1>0時以下述式(79)表示,b1<0時以下述式(80)表示。
因此,a1>0、b1>0時以下述式(81)表示,a1>0、b1<0時以下述式(82)表示,a1<0、b1>0時以下述式(83)表示,a1<0、b1<0時以下述式(84)表示。
求出滿足式(85)之擴展位數(Hab+Hab'),則為下述式(86)。
因此,式(73)之第2項以下述式(87)表示。
其次,對b1/a1之位數進行說明。不確定部分之計算中,b1/a1之位數可捨入至求出滿足式(85)之擴展位數(Ha+Ha')時之差量,因此求出捨入誤差以上之位即可。關於捨入,使用下述式(88)~式(90)進行說明。
若如式(90),則可捨去ε以下之位。
其次,對非確定數為0時,即ea、eb為-∞時之處理進行說明。
(1)ea=-∞之情形時
對上述式(73)進行評價時之式(74)中,求出滿足式(75)之擴展位數(Ha+Ha'),則為下述式(91)。
又,求出滿足式(85)之擴展位數(Hab+Hab'),則為下述式(92)。
因此,式(88)之不等式為式(93),故成為式(94)。
式(94)中,作為式(95),設為式(96)。然後,使用Cα+α'與Cβ+β'之差,進行擴展絕對有效位數之修正處理。
圖28係用以說明高精度機器數之除法之確定數(b1/a1)之位置的圖。於ε=Cβ+β'-Cα+α'以下近似b1/a1。ε之具體值係作為infCβ+β'-supCα+α'值求出。α'≦137之情形時,偏移值為9,α'>137之情形時,偏移值為8。
eb=-∞之情形時,誤差為0。因此,需要自外部指定有效位數。
(2)ea≠-∞、eb=-∞之情形時
求出滿足式(85)之擴展位數(Hab+Hab'),則為下述式(97)。
因此,式(88)之不等式為式(98),故成為式(99)。
然後,與(1)ea=-∞之情形時同樣地,使用Cα+α'與Cβ+β'之差,進行擴展絕對有效位數之修正處理。
[擴展位數減法表]
對擴展位數減法表進行說明,該擴展位數減法表係對Cα'、Cβ+β'輸出滿足Cα'-Cβ+β'≧Cγ+γ'之最大之擴展位數(γ+γ')的表。此處,0≧β,α'、β'分別為α'/28、β'/28。
0=β時,設為α'≧β'。藉由使用擴展位數減法表,求出例如滿足式(75)之擴展位數(Ha+Ha')時,可使計算高速化。
圖29係設為Cα'=A+B(A:確定數,B:非確定數)時A之32位元表現之一例。B為-C-31≦B<C-31。此處,α'為α'/28。然後,求出包含Cα'+Cβ+β'可取之最小值的Cγ+γ'之最大之擴展位數。具體而言,求出infCα'-supCβ+β'≧supCγ+γ'之Cγ+γ'。又,計算其差(supCγ+γ'-(infCα'-supCβ+β'))。
β=0且α'=β'時,Cα'-Cβ+β'≧C-∞。γ可取之值為單精度整數之範圍,將最小值視為-∞。該值之2位元表現為「0b1000000000000000」。
圖30係用以說明infCα'-supCβ+β'之具體計算方法之圖。以32位元表示infCα'與supCβ+β',使supCβ+β'之最低位元對準64位元之最低位元,以無符號64位元整數進行計算。若進行此處理則不會超過64位元之範圍。將infCα'與supCβ+β'複製至64位元,使infCα'向左移動-β位元。然後,計算該等值之差。計算該差之過程中,首先求出不為0之位元,使supCγ之最高位元之位置與該位元對準。
<3.具體例>
以下,對藉由高精度機器數進行之計算例進行說明。基數為2(C=2),指數
部之擴展部(小數部)ha'、hb'、ea'、eb'、γ'分別為ha'/28(0≦ha'<28)、hb'/28(0≦hb'<28)、ea'/28(0≦ea'<28)、eb'/28(0≦eb'<28)、γ'/28(0≦γ'<28)。
又,計算例中,將雙精度浮點表現轉換為高精度機器數,使用高精度機器數進行計算。將雙精度浮點表現轉換為高精度機器數之處理係藉由調查雙精度浮點之符號、指數部,複製尾數部而進行。
圖31係表示雙精度浮點表現之圖,圖32係表示藉由高精度機器數對10進制之「0.1」進行位元表現之一例的圖。圖32所示之高精度機器數中,sign(0)為正數,An(2)表示32位元之陣列之使用數為「2」。h(-4)表示最大位數為「-4」,h'(174)表示最大位數之擴展部(小數位數)為「174」。l(55)表示陣列a[0]之最低位元以2進制表示為-55位。
e(-57)表示有效位數於2進制中至-57有效。以10進制表示則為log102=0.301029995663981...,因此log102-57=-17.1587097528469281...,表示以10進制表示時至-17位有效(參照圖32之第4列)。
陣列a[1]、a[0]直接代入雙精度浮點表現之尾數部(fraction)。再者,高精度機器數係右對齊。10進制之「0.1」無法以電腦表示準確之值,因此成為如第4列之值。
將以雙精度浮點表現10進制之「0.1」之尾數部代入高精度機器數之陣列,則成為下述陣列(A)。其係將圖33所示之高精度機器數之陣列a[1]與陣列a[0]連結而成者。
0000000000001100110011001100110011001100110011001100110011001101(A)
最前面之1位元為最大位數h,可根據雙精度浮點表現計算求出。最大位數之擴展部(小數位數)h'可參照上述擴展位數表求出。陣列(A)之最前面9位元為「110011001」,其後之8位元為「10011001」。使用該8位元,參照上述「8位元-α'
表」,藉此可求出最大位數之擴展部h'。「10011001」以10進制表示時為153,讀入「8位元-α'表」之第153個(最前面為0)數值(174)。
計算2174/256,則為1.601792755682693353793846241591。另一方面,陣列(A)之最前面32位元之值為3435973836,使該值除以231,藉此可將最前面之第1位元設為2進制第0位。求出該值,則為1.59999999962747097015380859375,因此可知若將陣列(A)之最前面之1之位數設為2進制之第0位,則陣列(A)可利用2174/256控制。陣列(A)之最前面以2進制之位表示為-4,因此可知滿足0.1≦2-4+174/256。
實際進行計算則成為下述計算結果,可知2-4+173/256≦0.1≦2-4+174/256。
2-4+174/256=0.10011204723016833461211539009943
2-4+173/256=0.09984134986928919364142626838804
[加法]
圖33係表示藉由高精度機器數對10進制之「1.1」進行位元表現之一例的圖,圖34係表示將10進制之「0.1」及「1.1」轉換為高精度機器數後,使用高精度機器數計算「0.1+1.1」之結果之一例的圖。
圖34所示之高精度機器數中,h(0)、h'(68)表示1.2≦268/256。實際進行計算則成為下述計算結果,可知267/256≦1.2≦268/256。
267/256=1.19890616707438048177...
268/256=1.2021567314527031420...
又,計算結果之擴展絕對有效位數e(-53)、e'(23)係使用「0.1」之高精度機器數之擴展絕對有效位數e(-57)、e'(0)、「1.1」之高精度機器數之擴展絕對有效位數e(-53)、e'(0),表示2-53+22/256≦2-57+2-53≦2-53+23/256。於兩邊乘以253,實際進行計算則成為下述計算結果,可知222/256≦2-4+1≦223/256。
222/256=1.061377227289262...
2-4+1=1.0625
223/256=1.0642549128844645...
其次,求出偏移值。
0.1=0.100000000 0000000055 5111512312+α |α|≦2-57
1.1=1.10000000 0000000088 8178419700+β |β|≦2-53
1.2=1.20000000000000009436895709312+α+β
此處,α+β≦2-57+2-53=2-53(2-4+1),因此求出滿足(1+2-4)≦2γ'/256之最小之γ'。(1+2-4)中,1=20,2-4=2-4,且α'=0,β=-4,β'=0,因此根據該值,參照上述擴展位數加法表,求出γ'、差量之位數(偏移值)。
使用擴展位數加法表之值(γ'=23)則為(1+2-4)≦223/256,實際對兩邊分別進行計算則成為下述計算結果。
1+2-4=1.0625
223/256=1.0642549128844645497886112570016
又,擴展位數加法表之偏移值為10。差量之計算結果如下。
223/256-(1+2-4)=0.00175491288446454978861125700158
使其乘以210之計算結果如下。
1.7970307936916989835379271696181
於2進制中之小數點以下為「.0000000001********」,「1********」以下可捨去。這表示2進制中可自第-53位起捨去10位以下。藉此,最小位數l成為-55位,為絕對有效位數e(-53)以下。於2進制中-55位以下原本即為0。
圖35係表示以浮點計算10進制之「0.1+1.1」並轉換為高精度機器數之結果之一例的圖。可知轉換為高精度機器數後進行計算時,精度有所提昇。
圖36係表示藉由高精度機器數對10進制之「0.0000001」進行位元表現之一例的圖,圖37係藉由高精度機器數對10進制之「1.0」進行位元表現之一例的圖。又,圖38係表示將10進制之「0.0000001」及「1.0」轉換為高精度機器數後,使用高精度機器數對「1.0」加上100次「0.0000001」所得的結果之一例之圖。可知絕對有效位數e(-53)未變化,僅小數位數e'成為100。第1實施形態之機器數之反覆計算中,每一次計算絕對有效位數e之值增加3左右,因此進行加法100次時,有效位數變得無意義,但可藉由高精度機器數進行改善。
又,圖39係表示以浮點進行對「1.0」加上100次「0.0000001」之計算並將其結果轉換為高精度機器數所得的結果之一例之圖。有效位數於10進制中為15位。
[乘法]
圖40係表示將10進制之「0.1」及「1.1」轉換為高精度機器數,用高精度機器數計算「0.1×1.1」之結果之一例的圖。
圖40所示之高精度機器數中,h(-4)、h'(209)表示0.11≦2-4+209/256。實際進行計算則成為下述計算結果,可知2-4+208/256≦0.11≦2-4+209/256。
2-4+208/256=0.1097657600233312...
2-4+209/256=0.11006336518984898...
圖40所示之高精度機器數中,e(-56)、e'(112)表示257C'≦257(2-56+112/256)。又,A、B同為正時之式(38)所示之C'之具體計算結果如下。
實際進行計算則成為下述計算結果,可知257(2-56+111/256)≦257C'≦257(2-56+112/256)。又,e(-56)、e'(112)係滿足C'≦Cγ+γ'之最小之擴展位數,可知為擴展有效位數(e+e'/256)。
257(2-56+112/256)=2.708511093873...
257C'=2.704175338990...
257(2-56+111/256)=2.701187431...
又,偏移值為9,因此最小位數為l(-63),小於e(-56)。假設該位數以下有連續2個以上0。
圖41係表示以浮點計算10進制之「0.1×1.1」並轉換為高精度機器數的結果之一例之圖。可知藉由高精度機器數所得之計算結果與藉由浮點所得之計算結果相同。
圖42係表示藉由高精度機器數進行對10進制之「1.1」乘以100次「0.0000001」之計算所得的結果之一例之圖。對圖42所示之計算結果與圖33所示之「1.1」之高精度機器數之有效位數進行比較。有效位數為logC|確定數|-擴展絕對有效位數(γ+γ')≦k之最小之整數。
圖33:(0+36/256)-(-53)=53+36/256
圖42:(-2326+202/256)-(-2372+1/256)=46+201/256
有效位數降減少了約6+91/256,但與第1實施形態中之機器數相比獲得了改善。
[除法]
圖43係表示將10進制之「1」及「3」轉換為高精度機器數,用高精度機器數計算「1÷3」之結果之一例的圖。1與3不存在非確定數部分,因此(ea=-∞、eb=-∞),將擴展絕對有效位數指定為-100。
圖44係藉由高精度機器數對作為分母之10進制之「0.1」進行位元
表現之一例的圖,圖45係藉由高精度機器數對作為分子之10進制之「1」進行位元表現之一例的圖。又,圖46係表示使用高精度機器數計算「1÷0.1」所得之結果之一例的圖。1不存在非確定數部分,因此以分子之非確定數為0之情況(ea≠-∞,eb=-∞)進行計算。
上述式(75)中,計算ha+ha'-1/256、ea+ea'之結果如下。
ha+ha'-1/256=-4+173/256
ea+ea'=-57
然後,使用該數值,參照上述擴展位數減法表求出Ha+Ha'。ea相對於ha較小,因此成為自ha+ha'-1/256減去1/256之值。
Ha+Ha'=-4+172/256
上述式(99)中,(hb+ea-Ha-ha)+(hb'+ea'-Ha'-ha'+1/256)為-51+168/256,得到擴展絕對有效位數e(-51)、e'(169)之計算結果。因偏移值為8,故對於最小位數l(-53),擴展絕對有效位數變大。
圖47係表示藉由高精度機器數對作為分母之10進制之「0.1」進行位元表現之一例的圖,圖48係表示藉由高精度機器數對作為分子之10進制之「0.2」進行位元表現之一例的圖。又,圖49係表示使用高精度機器數計算「0.2÷0.1」之結果之一例的圖。以分子及分母之非確定數不為0之情況(ea≠-∞、eb≠-∞)進行計算。
上述式(75)中,計算ha+ha'-1/256、ea+ea'之結果如下。
ha+ha'-1/256=-4+173/256
ea+ea'=-57
然後,使用該數值,參照上述擴展位數減法表求出Ha+Ha'。因ea相對於ha較小,因此成為自ha+ha'-1/256減去1/256之值。
Ha+Ha'=-4+172/256
上述式(89)中,計算出指數部之下述2個值。
(eb-Ha)+(eb'-Ha'+1/256)=-53+85/256
(hb+ea-Ha-ha)+(hb'+ea'-Ha'-ha'+1/256)=-53+85/256
該等2個值不存在差量,因此藉由偏移值為∞時之方法,計算結果之擴展絕對有效位數為-52+85/256加上1/256之值(e(-52),e'(86))。
Claims (10)
- 一種資訊處理裝置,其具備:輸入部,其輸入以下述式(11)及式(12)分別定義實數A及實數B之高精度機器數;儲存部,其儲存上述高精度機器數;及運算部,其使用上述儲存部中儲存之高精度機器數進行運算,以滿足下述式(13)之方式決定擴展絕對有效位數(γ+γ'),將該運算結果之高精度機器數儲存至上述儲存部中;
- 如請求項1之資訊處理裝置,其中上述高精度機器數之基數C為2、8或16之任一者。
- 如請求項2之資訊處理裝置,其中上述小數位數ha'、hb'、ea'、eb'、γ'分別以如下方式表示:ha'/2n(0≦ha'<2n)、hb'/2n(0≦hb'<2n)、ea'/2n(0≦ea'<2n)、eb'/2n(0≦eb'<2n)、γ'/2n(0≦γ'<2n),n為自然數。
- 如請求項3之資訊處理裝置,其中上述高精度機器數之基數C為 2,上述小數位數之n為8。
- 一種電腦程式,其使電腦執行具有以下步驟之處理:輸入步驟,其輸入以下述式(11)及式(12)分別定義實數A及實數B之高精度機器數;儲存步驟,其將上述高精度機器數儲存至儲存部中;及運算步驟,其使用上述儲存部中儲存之高精度機器數進行運算,以滿足下述式(13)之方式決定擴展絕對有效位數(γ+γ'),將上述運算結果之高精度機器數儲存至上述儲存部中;
- 一種記錄媒體,其記錄有如請求項8之程式。
- 一種資訊處理方法,其具有以下步驟:輸入步驟,其輸入以下述式(11)及式(12)分別定義實數A及實數B之高精度機器數;儲存步驟,其將上述高精度機器數儲存至儲存部中;及運算步驟,其使用上述儲存部中儲存之高精度機器數進行運算,以滿足下述式(13)之方式決定擴展絕對有效位數(γ+γ'),將上述運算結果之高精度機器數儲存至上述儲存部中;
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP2019-214678 | 2019-11-27 | ||
JP2019214678 | 2019-11-27 | ||
WOPCT/JP2020/024260 | 2020-06-19 | ||
PCT/JP2020/024260 WO2021106253A1 (ja) | 2019-11-27 | 2020-06-19 | 情報処理装置、プログラム、及び情報処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202129487A TW202129487A (zh) | 2021-08-01 |
TWI753668B true TWI753668B (zh) | 2022-01-21 |
Family
ID=73993038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109141100A TWI753668B (zh) | 2019-11-27 | 2020-11-24 | 資訊處理裝置、電腦程式、記錄媒體及資訊處理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11334317B2 (zh) |
EP (1) | EP4068080A4 (zh) |
JP (1) | JP6810437B1 (zh) |
TW (1) | TWI753668B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006323710A (ja) * | 2005-05-20 | 2006-11-30 | Renesas Technology Corp | データプロセッサ、データ処理方法及び演算制御プログラム |
US20150355884A1 (en) * | 2014-06-10 | 2015-12-10 | Honda Motor Co., Ltd. | Floating-point calculation apparatus, program, and calculation apparatus |
US20160124710A1 (en) * | 2014-11-03 | 2016-05-05 | Arm Limited | Data processing apparatus and method using programmable significance data |
TW201839642A (zh) * | 2017-04-28 | 2018-11-01 | 美商英特爾股份有限公司 | 用以針對機器學習執行浮點及整數運算之指令及邏輯 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001093084A1 (en) * | 2000-06-02 | 2001-12-06 | Johnson Joseph E | Apparatus and method for handling logical and numerical uncertainty utilizing novel underlying precepts |
JP2004005395A (ja) | 2002-04-16 | 2004-01-08 | Sony Computer Entertainment Inc | 演算処理装置、半導体デバイス |
US9223544B2 (en) * | 2012-09-07 | 2015-12-29 | Intel Corporation | Number representation and memory system for arithmetic |
-
2020
- 2020-06-19 US US17/056,367 patent/US11334317B2/en active Active
- 2020-06-19 JP JP2020542917A patent/JP6810437B1/ja active Active
- 2020-06-19 EP EP20891904.3A patent/EP4068080A4/en active Pending
- 2020-11-24 TW TW109141100A patent/TWI753668B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006323710A (ja) * | 2005-05-20 | 2006-11-30 | Renesas Technology Corp | データプロセッサ、データ処理方法及び演算制御プログラム |
US20150355884A1 (en) * | 2014-06-10 | 2015-12-10 | Honda Motor Co., Ltd. | Floating-point calculation apparatus, program, and calculation apparatus |
US20160124710A1 (en) * | 2014-11-03 | 2016-05-05 | Arm Limited | Data processing apparatus and method using programmable significance data |
TW201839642A (zh) * | 2017-04-28 | 2018-11-01 | 美商英特爾股份有限公司 | 用以針對機器學習執行浮點及整數運算之指令及邏輯 |
Also Published As
Publication number | Publication date |
---|---|
TW202129487A (zh) | 2021-08-01 |
EP4068080A4 (en) | 2023-08-09 |
JP6810437B1 (ja) | 2021-01-06 |
EP4068080A1 (en) | 2022-10-05 |
US20210247960A1 (en) | 2021-08-12 |
JPWO2021106253A1 (zh) | 2021-06-03 |
US11334317B2 (en) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107077415B (zh) | 用于执行转换运算的装置和方法 | |
JP6744916B2 (ja) | 冗長表現を用いた、第1および第2のオペランドの積算 | |
KR20190090817A (ko) | 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법 | |
JP7096828B2 (ja) | 入力オペランド値を処理するための装置及び方法 | |
US10983755B2 (en) | Transcendental calculation unit apparatus and method | |
US10089073B2 (en) | Method and apparatus for converting from integer to floating point representation | |
JP7292297B2 (ja) | 確率的丸めロジック | |
TWI753668B (zh) | 資訊處理裝置、電腦程式、記錄媒體及資訊處理方法 | |
JP7601776B2 (ja) | アンカーデータ要素の変換 | |
US20050289208A1 (en) | Methods and apparatus for determining quotients | |
JP2022519258A (ja) | アンカーデータ要素における特殊値の符号化 | |
JP7044528B2 (ja) | リーディングゼロ予想 | |
US20190121615A1 (en) | Apparatus and method for subtracting significand values of floating-point operands | |
US9658827B2 (en) | Apparatus and method for performing reciprocal estimation operation | |
WO2021106253A1 (ja) | 情報処理装置、プログラム、及び情報処理方法 | |
Serôdio | Unum Type-IV: A Floating-Point Unit with Dynamically Varying Exponent and Mantissa Sizes | |
Nguyen | Architectural improvements in IEEE-compliant floating-point multiplication | |
JP4109181B2 (ja) | 論理回路、および、それを使用した浮動小数点演算回路とマイクロプロセッサ | |
Fiolhais | Exact Inner Product Processor in FPGA | |
CN118302744A (zh) | 用于机器学习的浮点对数系统缩放系统 | |
Ledin | A Comparison of Radix-2 Square Root Algorithms Using Digit Recurrence | |
Shibu | Modulo adders, multipliers and shared-moduli architectures for moduli of type | |
Thornton et al. | Specialized Multiplier Circuits | |
Moore | Specialized Multiplier Circuits | |
Venkatachalapathy | Signed Digit Representation of Numbers |