protected override IDataItem TestFunc(IDataItem p1) { var u = p1.ToUInt32().Value; var w = UBigInt.From(u); return(new UBigIntDataItem(w)); }
private static void ニュートンラプソン法による逆数の計算(UBigInt v, int factor_v, out UBigInt xi, out int factor_x) { factor_x = factor_v + 1; xi = (UBigInt.From(7U) << (factor_x - 1)).USubtruct((v << (factor_x - factor_v + 1))); while (true) { var t = (UBigInt.One << (factor_v + factor_x + 1)).USubtruct(v * xi); var xi_plus_1 = (xi * t) >> (factor_v + factor_x); if (xi_plus_1 == xi) { break; } xi = xi_plus_1; } }