Base types, Collections, Diagnostics, IO, RegEx…
The Orcas January Community Technology Preview (CTP) has been publicly released as of Wednesday evening! This CTP is available as a Virtual PC image or as a self-extracting install. We advise against installing the self-extracting install on a production machine.
In this CTP we're announcing a new numeric type that provides support for very large numbers (beyond the range of In64). The new type is: BigInteger.
All existing numeric types in the Framework have a limited range. This is the first type that supports an arbitrary range and will extend to accommodate any large number as needed. This type lives in the new System.Numeric namespace where all new numeric and arithmetic features are going to reside. It supports all the basic arithmetic operations including things like Pow, DivRem and GreatestCommonDivisor. It implements the following interfaces: IFormattable, IComparable, IComparable<BigInteger> and IEquatable<BigInteger>. It is serializable and immutable. It has implicit casts from all basic integral types and explicit casts to/from all numeric type.
We'll blog more about BigInteger next week.
In related news, the CLR Add-In Team has started blogging! The Add-In team is a new feature team on the CLR tasked with making it easy for managed applications to host add-ins (also known as plug-ins, add-ons, extensions, etc.).
The team is tackling some interesting problems such as: loading/unloading, sandboxing, isolation, lifetime management, discovery, activation, backwards and forwards compatibility, isolation changes, and sharing.
The new add-in APIs they are providing in the Orcas release solves these so you don't have to. Most of these new APIs are available today in the Orcas January CTP.
To learn more about add-ins, head over to the CLR Add-In Team Blog and also check out the recently published MSDN Magazine article on the add-in model.
Why not call it 'UnboundedInteger' instead of 'BigInteger'? I think that the former is more concise than the latter.
What about BigDecimal?
It will be nice :)
Can you explain what is the scenario where you would need BigDecimal?
I know it will be "nice" but it's useful for us to understand the scenario so we can provide the right set of features in the future.
What about "number" ?
I have the following idea for much time:
I expect a number that beyond has a ilimited size, has a mathematical "perfection"... not just integers... a "perfect" number, for example:
If I have a expression: 1 / sqrt(2), the number store a *expression* in a memory and do not evaluate it until I request. So if I multiply this number by sqrt(2), the result MUST BE perfect 1 (one) as a result.
But if I store a simple value like 3 in this number, it uses only a one byte in memory, otherwise it store until to hd + memory size like a string.
So would be the end of byte, sbyte, uint end all of current disgusting number types...
Who tolerates the IEEE floating differences? I HATE IT! where 0.03 passes to be a 0.029999851465@#!¨&*( In 2007 !!!!!
This BigInteger is just for integers?
News & Highlights List of Bugs That Are Fixed in Visual Studio 2005 Service Pack 1 Microsoft Developers
So if its immutable does it re-instantiate if you increment it every time? I think we should be clear that this variable sounds like it is for STORAGE only and that using it as a loop or incrementor would be very very slow since its immutable. Thats what I gather from the description at least. It would be a reference type treated as a value type much like string right?