Changeset 8677


Ignore:
Timestamp:
Feb 27, 2020, 4:47:48 PM (2 years ago)
Author:
kopal
Message:

NumberOperations:

  • implemented documented but previously non-implemented math functions
Location:
trunk/CrypPlugins/Numbers
Files:
6 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Numbers/NumberOperations.cs

    r8673 r8677  
    4242        "Numbers/icons/NextPrimeIcon.png",
    4343        "Numbers/icons/PrevOrimeIcon.png",
    44         "Numbers/icons/IsPrime.png")]
     44        "Numbers/icons/IsPrime.png",
     45        "Numbers/icons/abs.png",
     46        "Numbers/icons/factorial.png",
     47        "Numbers/icons/crosssum.png",
     48        "Numbers/icons/dlog.png",
     49        "Numbers/icons/nPr.png",
     50        "Numbers/icons/nCr.png"
     51        )]
    4552    [ComponentCategory(ComponentCategory.ToolsMisc)]
    4653    class NumberOperations : ICrypComponent
     
    289296                        case NumberOperation.Isprime:
    290297                            result = (Input1.IsProbablePrime() ? 1 : 0);
     298                            break;
     299                        case NumberOperation.ABS:
     300                            result = (Input1 > 0 ? Input1 : Input1 * -1);
     301                            break;
     302                        case NumberOperation.Factorial:
     303                            result = Input1.Factorial();
     304                            break;
     305                        case NumberOperation.Crosssum:
     306                            result = Input1.CrossSum(Input2);
     307                            break;
     308                        case NumberOperation.Dlog:
     309                            result = Input1.DiscreteLogarithm(Input2, Mod);
     310                            break;
     311                        case NumberOperation.NPR:
     312                            result = Input1.nPr(Input2);
     313                            break;
     314                        case NumberOperation.NCR:
     315                            result = Input1.nCr(Input2);
    291316                            break;
    292317                    }
  • trunk/CrypPlugins/Numbers/NumberSettings.cs

    r8673 r8677  
    3838        Nextprime,
    3939        Prevprime,
    40         Isprime
     40        Isprime,
     41        ABS,
     42        Factorial,
     43        Crosssum,
     44        Dlog,
     45        NPR,
     46        NCR
    4147    }
    4248    class NumberSettings : ISettings
     
    6773            "Nextprime",
    6874            "Prevprime",
    69             "Isprime"})]
     75            "Isprime",
     76            "ABS",
     77            "Factorial",
     78            "Crosssum",
     79            "Dlog",
     80            "nPr",
     81            "nCr"})]
    7082        public NumberOperation Operat
    7183        {
     
    143155                    ChangePluginIcon(16);
    144156                    break;
     157                case NumberOperation.ABS:
     158                    ChangePluginIcon(17);
     159                    break;
     160                case NumberOperation.Factorial:
     161                    ChangePluginIcon(18);
     162                    break;
     163                case NumberOperation.Crosssum:
     164                    ChangePluginIcon(19);
     165                    break;
     166                case NumberOperation.Dlog:
     167                    ChangePluginIcon(20);
     168                    break;
     169                case NumberOperation.NPR:
     170                    ChangePluginIcon(21);
     171                    break;
     172                case NumberOperation.NCR:
     173                    ChangePluginIcon(22);
     174                    break;
    145175            }
    146176        }
  • trunk/CrypPlugins/Numbers/Numbers.csproj

    r8673 r8677  
    215215    <Resource Include="icons\PrimeNIcon.png" />
    216216  </ItemGroup>
     217  <ItemGroup>
     218    <Resource Include="icons\abs.png" />
     219    <Resource Include="icons\dlog.png" />
     220    <Resource Include="icons\factorial.png" />
     221    <Resource Include="icons\nCr.png" />
     222    <Resource Include="icons\nPr.png" />
     223  </ItemGroup>
     224  <ItemGroup>
     225    <Resource Include="icons\crosssum.png" />
     226  </ItemGroup>
    217227  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    218228  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Note: See TracChangeset for help on using the changeset viewer.