Ignore:
Timestamp:
May 20, 2010, 12:35:16 PM (12 years ago)
Author:
Sven Rech
Message:

replaced all BigInteger stuff with the new BigInteger class from .net 4.0

But there are still problems with some plugins (Keysearcher, BigInteger Operations...)

Location:
trunk/CrypPlugins/BigNumber
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/BigNumber/BigNumber.csproj

    r1416 r1448  
    108108      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    109109    </Reference>
     110    <Reference Include="System.Numerics" />
    110111    <Reference Include="System.Xaml" />
    111112    <Reference Include="System.Xml.Linq">
  • trunk/CrypPlugins/BigNumber/BigNumberInput.cs

    r807 r1448  
    2424using Cryptool.PluginBase;
    2525using System.ComponentModel;
     26using System.Numerics;
    2627
    2728namespace Cryptool.Plugins.BigNumber
     
    3940        #region Properties
    4041
    41         private BigInteger numberOutput = null;
     42        private BigInteger numberOutput = 0;
    4243        /// <summary>
    4344        /// The output is defined
     
    105106            try
    106107            {
    107                 bi = BigInteger.parseExpression(settings.Number);               
     108                bi = BigIntegerHelper.parseExpression(settings.Number);               
    108109            }
    109110            catch (Exception ex)
  • trunk/CrypPlugins/BigNumber/BigNumberOperation.cs

    r973 r1448  
    2020using Cryptool.PluginBase.Miscellaneous;
    2121using System.ComponentModel;
     22using System.Numerics;
    2223
    2324namespace Cryptool.Plugins.BigNumber
     
    3031        #region private variable
    3132        //The variables are defined
    32         private BigInteger input1 = null;
    33         private BigInteger input2 = null;
    34         private BigInteger mod = null;
    35         private BigInteger output = null;
     33        private BigInteger input1 = 0;
     34        private BigInteger input2 = 0;
     35        private BigInteger mod = 0;
     36        private BigInteger output = 0;
    3637        private BigNumberOperationSettings settings = new BigNumberOperationSettings();
    3738
     
    153154        public void PreExecution()
    154155        {
    155             input1 = null;
    156             input2 = null;
    157             mod = null;
     156            input1 = 0;
     157            input2 = 0;
     158            mod = 0;
    158159        }
    159160
     
    174175                        // x + y
    175176                        case 0:
    176                             if (Mod is object)
     177                            if (Mod != 0)
    177178                                Output = (Input1 + Input2) % Mod;
    178179                            else
     
    181182                        // x - y
    182183                        case 1:
    183                             if (Mod is object)
     184                            if (Mod != 0)
    184185                                Output = (Input1 - Input2) % Mod;
    185186                            else
     
    188189                        //x * y
    189190                        case 2:
    190                             if (Mod is object)
     191                            if (Mod != 0)
    191192                                Output = (Input1 * Input2) % Mod;
    192193                            else
     
    195196                        // x / y
    196197                        case 3:
    197                             if (Mod is object)
     198                            if (Mod != 0)
    198199                                Output = (Input1 / Input2) % Mod;
    199200                            else
     
    202203                        // x ^ y
    203204                        case 4:
    204                             if (Mod is object)
     205                            if (Mod != 0)
    205206                            {
    206207                                if (Input2 >= 0)
    207                                     Output = Input1.modPow(Input2, Mod);
     208                                    Output = BigInteger.ModPow(Input1, Input2, Mod);
    208209                                else
    209210                                {
    210                                     Output = Input1.modInverse(Mod).modPow(-Input2, Mod);
     211                                    Output = BigInteger.ModPow(BigIntegerHelper.ModInverse(Input1, Mod), -Input2, Mod);
    211212                                }
    212213                            }
    213214                            else
    214215                            {
    215                                 Output = Input1.pow(Input2);
     216                                Output = BigInteger.Pow(Input1, (int)Input2);
    216217                            }
    217218                            break;
    218219                        // gcd(x,y)
    219220                        case 5:
    220                                 Output = Input1.gcd(Input2);
     221                            Output = BigInteger.GreatestCommonDivisor(Input1, Input2);
    221222                            break;
    222223                    }
Note: See TracChangeset for help on using the changeset viewer.