MCPcopy Create free account
hub / github.com/questdb/questdb / multiply192

Method multiply192

core/src/main/java/io/questdb/std/Decimal256.java:2251–2351  ·  view source on GitHub ↗
(long h, long m, long l)

Source from the content-addressed store, hash-verified

2249 }
2250
2251 private void multiply192(long h, long m, long l) {
2252 // Perform 256-bit × 192-bit multiplication
2253 // Result is at most 448 bits, but we keep only the lower 256 bits
2254
2255 // Split this into eight 32-bit parts
2256 long a7 = hh >>> 32;
2257 long a6 = hh & 0xFFFFFFFFL;
2258 long a5 = hl >>> 32;
2259 long a4 = hl & 0xFFFFFFFFL;
2260 long a3 = lh >>> 32;
2261 long a2 = lh & 0xFFFFFFFFL;
2262 long a1 = ll >>> 32;
2263 long a0 = ll & 0xFFFFFFFFL;
2264
2265 long b5 = h >>> 32;
2266 long b4 = h & 0xFFFFFFFFL;
2267 long b3 = m >>> 32;
2268 long b2 = m & 0xFFFFFFFFL;
2269 long b1 = l >>> 32;
2270 long b0 = l & 0xFFFFFFFFL;
2271
2272 // Compute all partial products
2273 long p00 = a0 * b0;
2274 long p01 = a0 * b1;
2275 long p02 = a0 * b2;
2276 long p03 = a0 * b3;
2277 long p04 = a0 * b4;
2278 long p05 = a0 * b5;
2279 long p10 = a1 * b0;
2280 long p11 = a1 * b1;
2281 long p12 = a1 * b2;
2282 long p13 = a1 * b3;
2283 long p14 = a1 * b4;
2284 long p15 = a1 * b5;
2285 long p20 = a2 * b0;
2286 long p21 = a2 * b1;
2287 long p22 = a2 * b2;
2288 long p23 = a2 * b3;
2289 long p24 = a2 * b4;
2290 long p25 = a2 * b5;
2291 long p30 = a3 * b0;
2292 long p31 = a3 * b1;
2293 long p32 = a3 * b2;
2294 long p33 = a3 * b3;
2295 long p34 = a3 * b4;
2296 long p35 = a3 * b5;
2297 long p40 = a4 * b0;
2298 long p41 = a4 * b1;
2299 long p42 = a4 * b2;
2300 long p43 = a4 * b3;
2301 long p44 = a4 * b4;
2302 long p45 = a4 * b5;
2303 long p50 = a5 * b0;
2304 long p51 = a5 * b1;
2305 long p52 = a5 * b2;
2306 long p53 = a5 * b3;
2307 long p54 = a5 * b4;
2308 long p55 = a5 * b5;

Callers 1

multiplyMethod · 0.95

Calls 2

instanceMethod · 0.95
putMethod · 0.65

Tested by

no test coverage detected