/* IEEE754 floating point arithmetic * double precision: common utilities */ /* * MIPS floating point support * Copyright (C) 1994-2000 Algorithmics Ltd. * * This program is free software; you can distribute it and/or modify it * under the terms of the GNU General Public License (Version 2) as * published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "ieee754dp.h"
union ieee754dp ieee754dp_fint(int x) { u64 xm; int xe; int xs; ieee754_clearcx(); if (x == 0) return ieee754dp_zero(0); if (x == 1 || x == -1) return ieee754dp_one(x < 0); if (x == 10 || x == -10) return ieee754dp_ten(x < 0); xs = (x < 0); if (xs) { if (x == (1 << 31)) xm = ((unsigned) 1 << 31); /* max neg can't be safely negated */ else xm = -x; } else { xm = x; } /* normalize - result can never be inexact or overflow */ xe = DP_FBITS; while ((xm >> DP_FBITS) == 0) { xm <<= 1; xe--; } return builddp(xs, xe + DP_EBIAS, xm & ~DP_HIDDEN_BIT); }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 145 | 91.19% | 1 | 20.00% |
Atsushi Nemoto | 9 | 5.66% | 1 | 20.00% |
Ralf Bächle | 5 | 3.14% | 3 | 60.00% |
Total | 159 | 100.00% | 5 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 149 | 90.85% | 1 | 16.67% |
Atsushi Nemoto | 9 | 5.49% | 1 | 16.67% |
Ralf Bächle | 6 | 3.66% | 4 | 66.67% |
Total | 164 | 100.00% | 6 | 100.00% |