floating-point matrices into an unevaluated sum of floating-point matrices. In Section 3, we investigate algorithms which output an accurate result of matrix multiplication. In the final section, we give error estimations and the level 3 fraction for the algorithms described in Section 3. Computational results confirm the accuracy and speed of the method.
Algorithms are represented by MATLAB-like notation [19] for simplicity.
2 Error-free transformation of a matrix product
In this section, we investigate the error-free transformation of the product of two floating-point matrices into an unevaluated sum of floating-point matrices.
2.1 Notation
We assume that all computations are performed in binary floating-point arithmetic as defined by the IEEE 754 standard [1]. Let F be the set of floating-point numbers and u be the unit roundoff.1 Then, the significand of a floating-point number has − log2 u bits including the implicit 1. Let fl(· · ·) be denote that an expression inside the parentheses is evaluated in floating-point arithmetic with rounding to nearest (round to even tie-breaking). Note that double roundings are not allowed in fl(···). Throughout this paper, assume that neither overflow nor underflow occurs in fl(· · ·). Inequalities for vectors are interpreted element-wise. Say, for x, y ∈ Fn, x > y means xi > yi for 1 ≤ i ≤ n.
2.2 Error-free splitting
We explain the technique used in the accurate summation algorithm developed
by Rump et al. [11]. For p ∈ F and M ∈ N, the following is a definition of σ:
σ = 2M2⌈log2 |p|⌉. (1)
Assume that σ ∈ F, i.e. no overflow occurs. The following algorithm is pre- sented in [11].
Algorithm 1 [11] Assume p ∈ F and (1) is satisfied (note that |p| ≤ σ). The following algorithm transforms p into p′, q ∈ F by floating-point arithmetic such that p = q + p′.
function [q, p′ ] = ExtractScalar( p, σ ) q = fl ((σ + p) − σ ) ;
p′ =fl(p−q);
1For IEEE 754 binary64 (double precision), u=2−53. For the binary32 (single precision), u = 2−24.
เมทริกซ์จุดลอยตัวเป็นผลรวมของการฝึกอบรม unevaluated จุดลอยตัว ในข้อ 3 เราจะตรวจสอบขั้นตอนวิธีการที่การส่งออกผลที่ถูกต้องของการคูณเมทริกซ์ ในส่วนสุดท้ายเราให้ประมาณการข้อผิดพลาดและระดับ 3 ส่วนสำหรับขั้นตอนวิธีการที่อธิบายไว้ในมาตรา 3 ผลการคำนวณยืนยันความถูกต้องและความเร็วของวิธีการ.
อัลกอริทึมโดยมีตัวแทน MATLAB เหมือนสัญกรณ์ [19] สำหรับความเรียบง่าย.
2 ข้อผิดพลาด การเปลี่ยนแปลงฟรีของผลิตภัณฑ์แมทริกซ์
ในส่วนนี้เราจะตรวจสอบการเปลี่ยนแปลงปราศจากข้อผิดพลาดของผลิตภัณฑ์ของทั้งสองเมทริกซ์จุดลอยเข้าไปในผลรวม unevaluated ของเมทริกซ์จุดลอยตัว.
2.1 โน้ต
เราคิดว่าการคำนวณทั้งหมดจะดำเนินการในไบนารีจุดลอยตัว เลขคณิตตามที่กำหนดโดยมาตรฐาน IEEE 754 [1] ให้ f เป็นชุดของตัวเลขลอยจุดและ u เป็น roundoff.1 หน่วยนั้นซิกของจำนวนจุดลอยตัวมี - บิต log2 U รวมทั้งนัย 1. ให้ฟลอริด้า (···) จะหมายถึงว่าการแสดงออก ในวงเล็บจะถูกประเมินในจุดลอยตัวเลขคณิตกับปัดเศษที่ใกล้ที่สุด (รอบที่จะได้ผูกทำลาย) โปรดทราบว่าไปรเวทคู่ไม่ได้รับอนุญาตในฟลอริด้า (···) ตลอดบทความนี้สมมติว่าค่าล้นมิได้ underflow เกิดขึ้นในฟลอริด้า (···) ความไม่เท่าเทียมกันสำหรับเวกเตอร์จะถูกตีความองค์ประกอบที่ชาญฉลาด กล่าวว่าสำหรับ x, y ∈ Fn, X> Y หมายถึง Xi> Yi 1 ≤ I ≤ n.
2.2 แยกปราศจากข้อผิดพลาด
เราจะอธิบายเทคนิคที่ใช้ในขั้นตอนวิธีการที่ถูกต้องรวมการพัฒนา
โดยตูด, et al [11] สำหรับ P ∈ F และ M ∈ N, ต่อไปนี้เป็นคำนิยามของσ:
σ = 2M2⌈log2 | P | ⌉ (1)
สมมติว่าσ∈ F เช่นไม่มีล้นเกิดขึ้น ขั้นตอนวิธีการต่อไปนี้ก่อน sented ใน [11].
อัลกอริทึมที่ 1 [11] สมมติ P ∈ f และ (1) มีความพึงพอใจ (โปรดทราบว่า | P | ≤σ) ขั้นตอนวิธีการดังต่อไปนี้แปลง P เข้า P 'Q ∈ F โดยลอยเลขคณิตจุดดังกล่าวที่ p = Q + P'.
ฟังก์ชั่น [Q, P '] = ExtractScalar (P, σ) q = ฟลอริดา ((σ + P) - σ);
P '= ฟลอริด้า (P-Q);
1 สำหรับ IEEE 754 binary64 (ความแม่นยำสอง), U = 2-53 สำหรับ binary32 (แม่นยำเดียว), U = 2-24
การแปล กรุณารอสักครู่..
