コード例 #1
0
ファイル: RandomExpr.cs プロジェクト: vishalbelsare/AleaTK
 public PseudoRandomExpr(Shape shape, PseudoRandomType type, Distribution distribution, ulong seed, ulong offset, string opCode = OpCodes.Random)
 {
     OpCode       = opCode;
     Shape        = shape;
     Seed         = seed;
     Distribution = distribution;
     Offset       = offset;
     Type         = type;
 }
コード例 #2
0
ファイル: Library.cs プロジェクト: vishalbelsare/AleaTK
        public static Expr <T> RandomUniform <T>(double from, double to, Shape shape = null, ulong?seed = null, ulong offset = 0UL,
                                                 PseudoRandomType type = PseudoRandomType.Default)
        {
            seed = seed ?? ((ulong)DateTime.Now.Ticks);
            var width    = (to - from).AsScalar <T>();
            var origin   = from.AsScalar <T>();
            var prngExpr = new PseudoRandomExpr <T>(shape, type, new UniformDistribution(), seed.Value, offset);

            return(origin + width * prngExpr);
        }
コード例 #3
0
        public override Generator CreateRandomGenerator(PseudoRandomType type)
        {
            switch (type)
            {
            case PseudoRandomType.Default:
                return(Alea.cuRAND.Generator.CreateCpu(RngType.PSEUDO_DEFAULT));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #4
0
        public override Generator CreateRandomGenerator(PseudoRandomType type)
        {
            Generator rng;

            switch (type)
            {
            case PseudoRandomType.Default:
                rng = Generator.CreateGpu(Gpu, RngType.PSEUDO_DEFAULT);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            rng.SetStream(Stream);
            return(rng);
        }
コード例 #5
0
ファイル: Library.cs プロジェクト: vishalbelsare/AleaTK
 public static Expr <T> RandomNormal <T>(Shape shape = null, ulong?seed   = null, ulong offset         = 0UL,
                                         double mean = 0.0, double stddev = 1.0, PseudoRandomType type = PseudoRandomType.Default)
 {
     seed = seed ?? ((ulong)DateTime.Now.Ticks);
     return(new PseudoRandomExpr <T>(shape, type, new NormalDistribution(mean, stddev), seed.Value, offset));
 }
コード例 #6
0
ファイル: Library.cs プロジェクト: vishalbelsare/AleaTK
 public static Expr <T> RandomUniform <T>(Shape shape           = null, ulong?seed = null, ulong offset = 0UL,
                                          PseudoRandomType type = PseudoRandomType.Default)
 {
     seed = seed ?? ((ulong)DateTime.Now.Ticks);
     return(new PseudoRandomExpr <T>(shape, type, new UniformDistribution(), seed.Value, offset));
 }
コード例 #7
0
 public Alea.cuRAND.Generator GetRandomGenerator(PseudoRandomType type)
 {
     return(_pseudoRandomGenerators.GetOrAdd(type, CreateRandomGenerator));
 }
コード例 #8
0
 public abstract Alea.cuRAND.Generator CreateRandomGenerator(PseudoRandomType type);