Hi-prec math for visual studio c#?

  • C#
  • Thread starter devronious
  • Start date
  • Tags
    Visual
In summary, there are commercial packages available for Hi-prec math for Visual Studio C#, but they tend to be expensive. The conversation also includes a quick code for creating basic math operations for floating point numbers using the Bignum class. However, it should be noted that the code is not compiled and may need further adjustments.
  • #1
devronious
7
0
Is there a Hi-prec math for visual studio c#?

Thanks in advance,

Devin
 
Technology news on Phys.org
  • #2
There's at least one commercial package out there, but it's not cheap:
http://www.extremeoptimization.com/

What are your needs? What does the library need to do, and how fast does it need to work? Are you just using big numbers, or are you doing matrices? Basic operations (+, -, *, /, %, ^), transcendental (sin, sinh, asin, exp, log, erf, gamma), or specialized (bessel, hypergeom, prime operations, etc.)? Integer or floating-point?
 
  • #3
I'm doing floating point with basic math ops, ie: +,-,*,/,^, sqrt
 
  • #4
Does it need to be fast? Is anything running in a tight loop, or are you just writing (say) a calculator where an extra millisecond won't hurt?
 
  • #5
Doesn't need to be fast.
 
  • #6
You could write your own, then, or have someone write it. Quick code:

Code:
class Bignum {
	protected ulong[] limb;
	public Bignum (long initialValue) {
		limb = new ulong[] {initialValue};
	}

	public Bignum (long[] initialValue) {
		Array.Copy(limb, initialValue, initialValue.Length);
	}

	public Bignum (string initialValue) {
		// Bad method, replace with a faster one if needed
		limb = new ulong[] {long.Parse(initialValue.Substring(0, 18))};
		for (int i = 18; i < initialValue.Length; ++i)
			limb = limb * 10 + long.Parse(initialValue[i]);
	}

	public Bignum (Bignum initialValue) {
		Array.Copy(limb, initialValue.limb, initialValue.limb.Length);
	}

	public static Bignum operator+ (Bignum a, Bignum b) {
		long carry = 0;
		int sz = Math.Max (a.limb.Length. b.limb.length);

		Bignum result = new Bignum(a);
		for (int i = 0; i < sz; ++i) {
			long o1 = result.limb[i];
			long o2 = b.limb[i];
			limb[i] += b.limb[i] + carry;
			if (result.limb[i] < o1 || result.limb[i] < o2)
				carry = 1;
			else
				carry = 0;
		}
		if (carry == 1) {
			Array.Copy(result.limb, result.limb, result.limb.Length + 1);
			result.limb[sz] = 1;
		}
		return result;
	}

	public static Bignum operator* (Bignum a, Bignum b) {
		// Code here
	}

	public static Bignum operator^ (Bignum a, uint b) {
		Bignum result = new Bignum(a);
		Bignum carry = new Bignum(0);
		while (b > 1) {
			if ((b&1) == 1)
				carry *= result;
			result *= result;
			b >>= 1;
		}
		return result * carry;
	}
}

I haven't compiled this (or even used an IDE) but this should be a good start. Subtraction is easy, multiplication not too hard, and division... well, code that as far as you need it. I decided to do the exponentiation so it wouldn't be too slow.
 
  • #7
Cool, thanks for your time, effort & code. I like your usage of binary ops.

-Devin
 

1. What is Hi-prec math for visual studio c#?

Hi-prec math for visual studio c# is a library that allows for high precision mathematical calculations in the C# programming language. It provides functions for working with large numbers and performing complex calculations with a high degree of accuracy.

2. How do I install Hi-prec math for visual studio c#?

To install Hi-prec math for visual studio c#, you can use the NuGet package manager in Visual Studio. Simply search for "hi-prec math" and select the package to install it in your project. Alternatively, you can download the source code and manually add it to your project.

3. What are the benefits of using Hi-prec math for visual studio c#?

Hi-prec math for visual studio c# allows for more accurate mathematical calculations compared to the built-in data types in C#. It also provides a wide range of functions for working with large numbers and performing complex mathematical operations.

4. Can I use Hi-prec math for visual studio c# in my existing project?

Yes, you can use Hi-prec math for visual studio c# in any C# project. It is compatible with all versions of Visual Studio and can be easily integrated into existing projects.

5. Are there any resources available for learning how to use Hi-prec math for visual studio c#?

Yes, there are many online resources available for learning how to use Hi-prec math for visual studio c#. The official documentation, tutorials, and examples can be found on the project's GitHub page. Additionally, there are several online forums and communities where you can ask for help and guidance from other users.

Similar threads

  • Programming and Computer Science
Replies
0
Views
228
  • Programming and Computer Science
Replies
3
Views
4K
  • Programming and Computer Science
Replies
3
Views
679
  • Programming and Computer Science
Replies
1
Views
248
  • Programming and Computer Science
Replies
5
Views
358
  • Programming and Computer Science
Replies
1
Views
969
  • Programming and Computer Science
Replies
2
Views
293
  • Programming and Computer Science
Replies
4
Views
316
  • Programming and Computer Science
Replies
25
Views
14K
  • Programming and Computer Science
Replies
11
Views
2K
Back
Top