<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx</link><description>Update : BigInteger was cut from the .NET 3.5 release . Have you ever needed a really huge number? So big it just couldn't fit into any other base-type in the framework? Well, no problem anymore, just use the new BigInteger type. You can now have the</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1482234</link><pubDate>Wed, 17 Jan 2007 10:55:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1482234</guid><dc:creator>Levi</dc:creator><description>&lt;p&gt;Excellent work on the BigInteger type! &amp;nbsp;I've been going over the assembly with Reflector, and it looks like it will be very useful.&lt;/p&gt;
&lt;p&gt;One concern, though - the type uses managed arrays as a backing store. &amp;nbsp;It is likely that many people will implement cryptographic operations using BigInteger, and the potential for sensitive information (keys, etc.) to remain in memory is high. &amp;nbsp;Is there any plan to mitigate this risk, or am I missing some implementation detail and overthinking here?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
</description></item><item><title>New BCL type: BigInteger</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1482587</link><pubDate>Wed, 17 Jan 2007 13:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1482587</guid><dc:creator>   Ernst Kuschke</dc:creator><description>&lt;p&gt;There's been a need for this for some time, and the guys have finally included this new BCL type in the&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1484388</link><pubDate>Wed, 17 Jan 2007 21:07:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1484388</guid><dc:creator>Chyld Medford</dc:creator><description>&lt;p&gt;awesome work! i can't wait to use it.&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1484951</link><pubDate>Thu, 18 Jan 2007 00:34:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1484951</guid><dc:creator>Jon Skeet</dc:creator><description>&lt;p&gt;The most important (good) part of the naming decision, IMO? It's the one all Java programmers will look up first when they want to find the type.&lt;/p&gt;
&lt;p&gt;So, can we expect BigDecimal next? :)&lt;/p&gt;
&lt;p&gt;Jon&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1485608</link><pubDate>Thu, 18 Jan 2007 02:13:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1485608</guid><dc:creator>Chyld Medford</dc:creator><description>&lt;p&gt;TrackBack from &lt;a rel="nofollow" target="_new" href="http://chyld.net/CS/blogs/cmedford/archive/2007/01/17/that-s-so-big-of-you.aspx"&gt;http://chyld.net/CS/blogs/cmedford/archive/2007/01/17/that-s-so-big-of-you.aspx&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1486020</link><pubDate>Thu, 18 Jan 2007 04:05:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1486020</guid><dc:creator>Chyld Medford</dc:creator><description>&lt;p&gt;I ran the code supplied above and gave it 4000 to find the factorial and it worked, but when I gave it 5000 I got a StackOverflowException. &amp;nbsp;Why is this? &amp;nbsp;I have over 1GB memory - it seems like it should of worked. &amp;nbsp;Any thoughts?&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1487037</link><pubDate>Thu, 18 Jan 2007 07:29:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1487037</guid><dc:creator>Inbar Gazit</dc:creator><description>&lt;p&gt;Sorry, the way I implemented Factorial is using recursion which means that we are going to use the stack before we run out of memory as each time you make another call into Factorial the stack grows and the number of calls is the factorial you are trying to implement. You can write this method in an iterative way using a simple for loop and you would avoid this issue.&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1487456</link><pubDate>Thu, 18 Jan 2007 09:05:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1487456</guid><dc:creator>grauenwolf</dc:creator><description>&lt;p&gt;That's cool and all, but are you going to create an INumeric interface so I can use generics with it? &lt;/p&gt;
&lt;p&gt;You know, something that supports this syntax&lt;/p&gt;
&lt;p&gt;Function Average(Of T AS INumeric)(a as T, b as T)&lt;/p&gt;
&lt;p&gt;Return A.Add(b).Divide(2)&lt;/p&gt;
&lt;p&gt;End Function&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1491591</link><pubDate>Fri, 19 Jan 2007 06:49:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1491591</guid><dc:creator>Chyld Medford</dc:creator><description>&lt;p&gt;I changed the recursion to a loop and then computed the factorial for 50,000...the article with the results are here: &lt;a rel="nofollow" target="_new" href="http://chyld.net/CS/blogs/cmedford/archive/2007/01/17/that-s-so-big-of-you.aspx"&gt;http://chyld.net/CS/blogs/cmedford/archive/2007/01/17/that-s-so-big-of-you.aspx&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Introducing: System.Numeric.BigInteger</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1491968</link><pubDate>Fri, 19 Jan 2007 10:01:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1491968</guid><dc:creator>DotNetKicks.com</dc:creator><description>&lt;p&gt;You've been kicked (a good thing) - Trackback from DotNetKicks.com&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1492119</link><pubDate>Fri, 19 Jan 2007 10:44:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1492119</guid><dc:creator>Oleg Ufaev</dc:creator><description>&lt;p&gt;&amp;gt;Bitwise operations are not supported, but we will have an MSDN article coming soon with how to write your own library extension of BigInteger.&lt;/p&gt;
&lt;p&gt;&amp;quot;Great Idea&amp;quot;&lt;/p&gt;
&lt;p&gt;May be include extension code example from article to BigInteger standart implementation? I can't understand your policy: write article about how inmplement bitwise operations and not implement it in BigInteger.&lt;/p&gt;
&lt;p&gt;Bitwise operation are used often!&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1494048</link><pubDate>Fri, 19 Jan 2007 21:24:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1494048</guid><dc:creator>Vadimmer</dc:creator><description>&lt;p&gt;IMHO BigDecimal and bitwise operations are extremely needed&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1494332</link><pubDate>Fri, 19 Jan 2007 22:24:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1494332</guid><dc:creator>George Tsiokos</dc:creator><description>&lt;p&gt;We definitely need the ability to work with numeric types in generic methods.&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1497696</link><pubDate>Sat, 20 Jan 2007 12:20:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1497696</guid><dc:creator>Aaron</dc:creator><description>&lt;p&gt;Wow, I am so used to working with Java and C# at the same time I always just assumed that .NET had a BigInteger type already ;) &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Well, I guess better late than never. &amp;nbsp;I do wonder what the BCL people were doing when they designed certain parts of the framework initially. &amp;nbsp;This reminds me of the total absence of a LinkedList type of collection class before 2.0. &amp;nbsp;How could they forget something like that? &amp;nbsp;I wanna call &amp;quot;slackers&amp;quot;, but other parts of the BCL are so well though out. &amp;nbsp;Its perplexing.&lt;/p&gt;
&lt;p&gt;On a different note, why does every MS project have a &amp;quot;code name&amp;quot; that has nothing to do with the project or what the project will really eventually be called? &amp;nbsp;Seems goofy ;)&lt;/p&gt;
</description></item><item><title>Welcome to the Future</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1513728</link><pubDate>Tue, 23 Jan 2007 14:34:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1513728</guid><dc:creator>Runar Jordahl</dc:creator><description>&lt;p&gt;Smalltalk had “LargeInteger” since the 1970s.&lt;/p&gt;
&lt;p&gt;In Smalltalk you do not even need to type your variable to LargeInteger: Any computation with an integer that flows over, will automatically convert to LargeInteger.&lt;/p&gt;
</description></item><item><title>Welcome to the Future?</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1517092</link><pubDate>Wed, 24 Jan 2007 02:06:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1517092</guid><dc:creator>Tim</dc:creator><description>&lt;p&gt;wow, bitwise operations are a part of all Smalltalk &amp;nbsp;integer types. Simply because they inherit from the class Integer. &amp;nbsp;&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1552020</link><pubDate>Mon, 29 Jan 2007 18:41:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1552020</guid><dc:creator>Ri Geon-Un</dc:creator><description>&lt;p&gt;Congratulations on the implementation of the BigInteger class.&lt;/p&gt;
&lt;p&gt;Now we need a BitStreamReader and a BitStreamWriter class. :)&lt;/p&gt;
&lt;p&gt;The .NET Framework is immense, but I feel it's quite lacking.&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1558951</link><pubDate>Tue, 30 Jan 2007 23:50:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558951</guid><dc:creator>Lem</dc:creator><description>&lt;p&gt;Nice class, gonna try to take fun!&lt;/p&gt;
&lt;p&gt;And don't forget that 0! = 1! = 1&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1597512</link><pubDate>Sun, 04 Feb 2007 17:01:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1597512</guid><dc:creator>Fduch</dc:creator><description>&lt;p&gt;System.Core.dll &lt;/p&gt;
&lt;p&gt;Hmmm....&lt;/p&gt;
&lt;p&gt;It's cool name but is it good?&lt;/p&gt;
</description></item><item><title>System.Numeric.BigInteger</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1676716</link><pubDate>Wed, 14 Feb 2007 18:10:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1676716</guid><dc:creator>Small place on earth</dc:creator><description>&lt;p&gt;&amp;#206;n versiunea Orcas de .NET s-a introdus un nou namespace: System.Numeric. &amp;#206;n acest namespace se regăseşte&lt;/p&gt;
</description></item><item><title>.Net Framework 3.5 - System.Core.dll</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1683666</link><pubDate>Thu, 15 Feb 2007 17:41:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1683666</guid><dc:creator>Mike Chaliy's Blog</dc:creator><description>&lt;p&gt;Незабаром в нас буде нова версія .Net Framework 3.5, яка схоже, як і 3.0, буде спиратися на базовий .Net&lt;/p&gt;
</description></item><item><title>re: Introducing: System.Numeric.BigInteger [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#1686064</link><pubDate>Fri, 16 Feb 2007 02:13:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1686064</guid><dc:creator>Sharp Fool</dc:creator><description>&lt;p&gt;I would like to propose the inclusion of&lt;/p&gt;
&lt;p&gt;a function&lt;/p&gt;
&lt;p&gt;BigInteger BinaryShift(BigInteger b, int n) {&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;return b * BigInteger.Pow(2, n); }&lt;/p&gt;
&lt;p&gt;This function is a convenience only, but an&lt;/p&gt;
&lt;p&gt;important one when porting code from other&lt;/p&gt;
&lt;p&gt;languages. For example it could replace the&lt;/p&gt;
&lt;p&gt;ubiquitous Java functions&lt;/p&gt;
&lt;p&gt; &amp;nbsp;BigInteger shiftLeft(int n) &amp;nbsp;[this &amp;lt;&amp;lt; n]&lt;/p&gt;
&lt;p&gt; &amp;nbsp;BigInteger shiftRight(int n) [this &amp;gt;&amp;gt; n]&lt;/p&gt;
&lt;p&gt;And, of course, it can be implemented much more&lt;/p&gt;
&lt;p&gt;efficiently compared to the function above.&lt;/p&gt;
&lt;p&gt;My second suggestion is a much more important&lt;/p&gt;
&lt;p&gt;one. I think it is almost a must to have the&lt;/p&gt;
&lt;p&gt;functions&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Product(T[] a)&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Sum(T[] a)&lt;/p&gt;
&lt;p&gt;and for slices of T[]&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Product(T[] a, int start, int end)&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Sum(T[] a, int start, int end)&lt;/p&gt;
&lt;p&gt;for T in {int, long, BigInteger}.&lt;/p&gt;
&lt;p&gt;Well, you might answer a simple foreach loop&lt;/p&gt;
&lt;p&gt;will solve this task. And I think a great many&lt;/p&gt;
&lt;p&gt;people will indeed implement it in this way.&lt;/p&gt;
&lt;p&gt;However, this is the most inefficient way to&lt;/p&gt;
&lt;p&gt;compute a sum or a product. For *big* numbers&lt;/p&gt;
&lt;p&gt;sequential adding or multiplying tends to be&lt;/p&gt;
&lt;p&gt;'unbalanced', a small term or factor is paired&lt;/p&gt;
&lt;p&gt;with an increasingly large one. Bad. &lt;/p&gt;
&lt;p&gt;Much better is the strategy of binary splitting. Just for illustration of the idea:&lt;/p&gt;
&lt;p&gt;BigInteger recProduct(BigInteger[] s, int len) {&lt;/p&gt;
&lt;p&gt; &amp;nbsp;if (len == 0) return BigInteger.One;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;if (len == 1) return s[index++];&lt;/p&gt;
&lt;p&gt; &amp;nbsp;int len2 = len &amp;gt;&amp;gt; 1;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;return recProduct(s, len - len2)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * recProduct(s, len2); &lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;And the only 'right' place to implement this&lt;/p&gt;
&lt;p&gt;is BigInteger, of course. &lt;/p&gt;
&lt;p&gt;Furthermore, something like Product(T[] a) and&lt;/p&gt;
&lt;p&gt;Sum(T[] a) assists the trend to functional&lt;/p&gt;
&lt;p&gt;programming in C# 3.&lt;/p&gt;
&lt;p&gt;So go ahead and show us some improvement over the BigInteger library of Java, written 15 years ago.&lt;/p&gt;
&lt;p&gt;Cheers SharpFool&lt;/p&gt;
</description></item><item><title>BigInteger type in Orcas</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#2006914</link><pubDate>Sun, 01 Apr 2007 20:30:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2006914</guid><dc:creator>MikeWo's Musings</dc:creator><description>&lt;p&gt;So, you know I was thinking, Int64 is just too limiting for my integers. I mean, I might generate a product...&lt;/p&gt;
</description></item><item><title>Visual Studio Code Name "Orcas" Beta 1 Has Been Released! [Inbar Gazit]</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#2212083</link><pubDate>Sat, 21 Apr 2007 00:26:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2212083</guid><dc:creator>BCL Team Blog</dc:creator><description>&lt;p&gt;I'm pleased to let you all know that Microsoft released the first beta version of the next version of&lt;/p&gt;
</description></item><item><title>New .NET 3.5 core stuff</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#4296594</link><pubDate>Wed, 08 Aug 2007 22:22:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4296594</guid><dc:creator>Patrick Smacchia [MVP C#]</dc:creator><description>&lt;p&gt;While installing VisualStudio 2008 Beta2 I was surprised that the NET framework 2.0 installation got&lt;/p&gt;
</description></item><item><title>PDC Day 3: What's Coming in CLR 4.0 (Part 1)</title><link>http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx#9025178</link><pubDate>Thu, 30 Oct 2008 23:07:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9025178</guid><dc:creator>All Your Base Are Belong To Us</dc:creator><description>&lt;p&gt;Joshua Goodman&amp;amp;#39;s session on CLR futures was packed - the crowd of developers wanted to learn what&amp;amp;#39;s&lt;/p&gt;
</description></item></channel></rss>