| // Copyright 2015 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| // WARNING: GENERATED FILE - DO NOT MODIFY MANUALLY! |
| // (To generate, in go/types directory: go test -run=Hilbert -H=2 -out="h2.src") |
| // This program tests arbitrary precision constant arithmetic |
| // by generating the constant elements of a Hilbert matrix H, |
| // its inverse I, and the product P = H*I. The product should |
| // be the identity matrix. |
| h0_0, h0_1 = 1.0 / (iota + 1), 1.0 / (iota + 2) |
| // Inverse Hilbert matrix |
| i0_0 = +1 * b2_1 * b2_1 * b0_0 * b0_0 |
| i0_1 = -2 * b2_0 * b3_1 * b1_0 * b1_0 |
| i1_0 = -2 * b3_1 * b2_0 * b1_1 * b1_1 |
| i1_1 = +3 * b3_0 * b3_0 * b2_1 * b2_1 |
| p0_0 = h0_0*i0_0 + h0_1*i1_0 |
| p0_1 = h0_0*i0_1 + h0_1*i1_1 |
| p1_0 = h1_0*i0_0 + h1_1*i1_0 |
| p1_1 = h1_0*i0_1 + h1_1*i1_1 |
| // Verify that product is identity matrix |
| const ok = p0_0 == 1 && p0_1 == 0 && |
| p1_0 == 0 && p1_1 == 1 && |