private void Run(string filename)
        {
            LoadRecording(filename);

            expected = (System.Double)GetReturnValue();
            actual = BlackBox.Demo.App.StaticMethods.StaticBL.GetSalesLastMonth();

            CompareObjects(expected, actual);
        }
示例#2
0
 /// <summary>
 /// Creates an array of random values in the given range [<paramref name="min"/>, <paramref name="max"/>].
 /// </summary>
 /// <param name="size">The length of the array, aka the number of values</param>
 /// <param name="min">The lower bound.</param>
 /// <param name="max">The upper bound.</param>
 /// <returns>An array of random values</returns>
 public static System.Double[] GetRandomOrdinates(System.Int32 size, System.Double min, System.Double max)
 {
     System.Double[] arr = new System.Double[size];
     System.Double width = max - min;
     for (System.Int32 i = 0; i < size; i++)
     {
         System.Double randomValue = _rng.NextDouble();
         arr[i] = min + randomValue * width;
     }
     return arr;
 }
        private void Run(string filename)
        {
            LoadRecording(filename);
            target = new BlackBox.Demo.App.SimpleAnemic.EmployeeBL();

            salaryInput = (System.Double)GetInputParameterValue("salary");
            salaryOutput = (System.Double)GetOutputParameterValue("salary");

            expected = (System.Collections.Generic.List<BlackBox.Demo.App.SimpleAnemic.EmployeeEntity>)GetReturnValue();
            actual = target.GetEmployeesMakingMoreThan(salaryInput);

            ConfigureComparison(filename);
            CompareObjects(salaryInput, salaryOutput);
            CompareObjects(expected, actual);
        }
示例#4
0
 public ActArrayActuatorPos()
 {
     _Tm = default(System.DateTime);
     _Index = new System.Int16();
     _Position = new System.Double();
 }
示例#5
0
 public Size3D(global::RTC.Size3D source)
 {
     _L = source.l;
     _W = source.w;
     _H = source.h;
 }
示例#6
0
        void DoProcess()
        {
            if (!(K1.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("K1 is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_K1 = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(K1);

            if (!(D1.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("D1 is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_D1 = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(D1);

            if (!(K2.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("K2 is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_K2 = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(K2);

            if (!(D2.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("D2 is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_D2 = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(D2);

            if (!(R.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("R is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_R = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(R);

            if (!(tvec.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("tvec is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_tvec = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(tvec);

            if (!(R1.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("R1 is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_R1 = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(R1);

            if (!(R2.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("R2 is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_R2 = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(R2);

            if (!(P1.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("P1 is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_P1 = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(P1);

            if (!(P2.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("P2 is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_P2 = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(P2);

            if (!(Q.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("Q is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_Q = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(Q);

            if (!(balance.Value is OpenCVForUnityPlayMakerActions.Double))
            {
                LogError("balance is not initialized. Add Action \"newDouble\".");
                return;
            }
            System.Double wrapped_balance = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Double, System.Double>(balance);

            if (!(fov_scale.Value is OpenCVForUnityPlayMakerActions.Double))
            {
                LogError("fov_scale is not initialized. Add Action \"newDouble\".");
                return;
            }
            System.Double wrapped_fov_scale = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Double, System.Double>(fov_scale);

            OpenCVForUnity.Calib3dModule.Calib3d.fisheye_stereoRectify(wrapped_K1, wrapped_D1, wrapped_K2, wrapped_D2, new OpenCVForUnity.CoreModule.Size((double)imageSize_width.Value, (double)imageSize_height.Value), wrapped_R, wrapped_tvec, wrapped_R1, wrapped_R2, wrapped_P1, wrapped_P2, wrapped_Q, flags.Value, new OpenCVForUnity.CoreModule.Size((double)newImageSize_width.Value, (double)newImageSize_height.Value), wrapped_balance, wrapped_fov_scale);
        }
示例#7
0
 public static lua_Number luai_numsub(lua_Number a, lua_Number b)
 {
     return((a) - (b));
 }
示例#8
0
 private readonly Spline _spline;             // Underlyig spline
 public SplineBuilder(FLOAT pointDistance, FLOAT error, int samplesPerCurve)
 {
     _builder = new CurveBuilder(pointDistance, error);
     _spline = new Spline(samplesPerCurve);
 }
示例#9
0
 /// <summary>
 /// Writes a Double value to the current stream and
 /// advances the stream position by eight bytes.
 /// </summary>
 /// <param name="value">The Double value to write</param>
 public void Write(System.Double value)
 {
     m_writer.Write(value);
 }
 public void SetUpperLimit(Scalar ang1max)
 {
     btHinge2Constraint_setUpperLimit(Native, ang1max);
 }
示例#11
0
 public static bool luai_numle(lua_Number a, lua_Number b)
 {
     return((a) <= (b));
 }
示例#12
0
 public static bool luai_numeq(lua_Number a, lua_Number b)
 {
     return((a) == (b));
 }
示例#13
0
 public static lua_Number luai_numunm(lua_Number a)
 {
     return(-(a));
 }
示例#14
0
 public static lua_Number luai_numpow(lua_Number a, lua_Number b)
 {
     return(pow(a, b));
 }
示例#15
0
 public static lua_Number luai_nummod(lua_Number a, lua_Number b)
 {
     return((a) - floor((a) / (b)) * (b));
 }
示例#16
0
 public static lua_Number luai_numdiv(lua_Number a, lua_Number b)
 {
     return((a) / (b));
 }
示例#17
0
 public static lua_Number luai_nummul(lua_Number a, lua_Number b)
 {
     return((a) * (b));
 }
示例#18
0
 public ActArrayActuatorPos(global::RTC.ActArrayActuatorPos source)
 {
     _Tm = Converter.RtcTimeToDateTime(source.tm);
     _Index = source.index;
     _Position = source.position;
 }
示例#19
0
 public SpeedHeading3D(global::RTC.SpeedHeading3D source)
 {
     _Speed = source.speed;
     _Direction = new ReactiveRTM.RTC.Orientation3D(source.direction);
 }
示例#20
0
 public static bool luai_numisnan(lua_Number a)
 {
     return(lua_Number.IsNaN(a));
 }
示例#21
0
 public void SetBaseValue(number watts)
 {
     _watts = watts;
     _value = null;
 }
示例#22
0
        /*
         * @@ lua_number2int is a macro to convert lua_Number to int.
         * @@ lua_number2integer is a macro to convert lua_Number to lua_Integer.
         ** CHANGE them if you know a faster way to convert a lua_Number to
         ** int (with any rounding method and without throwing errors) in your
         ** system. In Pentium machines, a naive typecast from double to int
         ** in C is extremely slow, so any alternative is worth trying.
         */

        /* On a Pentium, resort to a trick */
        //#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \
        //	(defined(__i386) || defined (_M_IX86) || defined(__i386__))

        /* On a Microsoft compiler, use assembler */
        //#if defined(_MSC_VER)

        //#define lua_number2int(i,d)   __asm fld d   __asm fistp i
        //#define lua_number2integer(i,n)		lua_number2int(i, n)

        /* the next trick should work on any Pentium, but sometimes clashes
         * with a DirectX idiosyncrasy */
        //#else

        //union luai_Cast { double l_d; long l_l; };
        //#define lua_number2int(i,d) \
        //  { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; }
        //#define lua_number2integer(i,n)		lua_number2int(i, n)

        //#endif


        /* this option always works, but may be slow */
        //#else
        //#define lua_number2int(i,d)	((i)=(int)(d))
        //#define lua_number2integer(i,d)	((i)=(lua_Integer)(d))

        //#endif

        private static void lua_number2int(out int i, lua_Number d)
        {
            i = (int)d;
        }
示例#23
0
文件: Punning.cs 项目: pszmyd/SHS
 public static unsafe void PutFloat64(Float64 x, byte[] b, int pos)
 {
     Debug.Assert(b.Length - pos  >= sizeof(Float64));
       fixed (byte* sb = b) {
     *((Float64*)(sb + pos)) = x;
       }
 }
示例#24
0
 [MethodImpl(MethodImplOptions.AggressiveInlining)] public static VECTOR Lerp(VECTOR a, VECTOR b, FLOAT amount) { return VECTOR.Lerp(a, b, amount); }
示例#25
0
 private static void lua_number2integer(out int i, lua_Number n)
 {
     i = (int)n;
 }
示例#26
0
 public static lua_Number luai_numadd(lua_Number a, lua_Number b)
 {
     return((a) + (b));
 }
示例#27
0
 [MethodImpl(MethodImplOptions.AggressiveInlining)] public static VECTOR Lerp(VECTOR a, VECTOR b, FLOAT amount) { return new VECTOR(a.X + ((b.X - a.X) * amount), a.Y + ((b.Y - a.Y) * amount)); }
        public Circle(Dynamic.Tekla.Structures.Drawing.ViewBase view, Dynamic.Tekla.Structures.Geometry3d.Point centerPoint, System.Double radius)
        {
            var args = new object[3];

            args[0]          = Dynamic.Tekla.Structures.Drawing.ViewBase_.GetTSObject(view);
            args[1]          = Dynamic.Tekla.Structures.Geometry3d.Point_.GetTSObject(centerPoint);
            args[2]          = radius;
            this.teklaObject = TSActivator.CreateInstance("Tekla.Structures.Drawing.Circle", args);
        }
示例#29
0
		static extern GtkWidgetPointer gtk_spin_button_new (GtkAdjustmentPointer adjustment, gdouble climb_rate, guint digits);
示例#30
0
 /// <summary>
 /// Converts a value into the Value object.
 /// </summary>
 /// <param name="value">The value to convert.</param>
 public static Value V(this System.Double value)
 {
     return(new Value(value));
 }
示例#31
0
 public Size3D()
 {
     _L = new System.Double();
     _W = new System.Double();
     _H = new System.Double();
 }
示例#32
0
 /// <summary>
 /// Converts the specified value into the literal value.
 /// </summary>
 /// <param name="value">The value to be used as literal.</param>
 public static Value L(this System.Double value)
 {
     return(new Value(value, Parameterization.None));
 }
示例#33
0
 public SpeedHeading2D()
 {
     _Speed = new System.Double();
     _Heading = new System.Double();
 }
示例#34
0
 /// <summary>
 /// Converts a value of one data type to another.
 /// </summary>
 /// <param name="value">The value to convert.</param>
 /// <param name="dataType">The target data type definition.</param>
 public static SysFn CastAs(this System.Double value, Wall.DataType dataType)
 {
     return(Designer.Cast(value, dataType));
 }
示例#35
0
 public SpeedHeading2D(global::RTC.SpeedHeading2D source)
 {
     _Speed = source.speed;
     _Heading = source.heading;
 }
示例#36
0
        static void Main(string[] args)
        {
            // Use "Debugging" and "Watch" to study variables and constants

            //1) declare variables of all simple types:
            //bool, char, byte, sbyte, short, ushort, int, uint, long, ulong, decimal, float, double
            // their names should be:
            //boo, ch, b, sb, sh, ush, i, ui, l, ul, de, fl, d0
            // initialize them with 1, 100, 250.7, 150, 10000, -25, -223, 300, 100000.6, 8, -33.1
            // Check results (types and values). Is possible to do initialization?
            // Fix compilation errors (change values for impossible initialization)
            bool    boo = true;
            char    ch  = 'c';
            byte    b   = 250;
            sbyte   sb  = 120;
            short   sh  = 10000;
            ushort  ush = 25;
            int     i   = -223;
            uint    ui  = 300;
            long    l   = 500;
            ulong   ul  = 400;
            decimal de  = 100000.6M;
            float   fl  = 255.5F;
            double  d0  = 234.5;



            //2) declare constants of int and double. Try to change their values.

            const int    ci  = 12;
            const double cd0 = 12.5;


            //3) declare 2 variables with var. Initialize them 20 and 20.5. Check types.
            // Try to reinitialize by 20.5 and 20 (change values). What results are there?
            var one = 20;
            var two = 20.5;

            //one = 20.5;
            //two = 20;


            // 4) declare variables of System.Int32 and System.Double.
            // Initialize them by values of i and d0. Is it possible?
            System.Int32  varone = i;
            System.Double vartwo = d0;



            if (true)
            {
                // 5) declare variables of int, char, double
                // with names i, ch, do
                // is it possible?
                // int i = 12;
                //char ch = 'a';
                //double d0 = 1234.7;

                // 6) change values of variables from 1)
                i  = 12;
                ch = 'a';
                d0 = 1234.7;
            }

            // 7)check values of variables from 1). Are they changed? Think, why


            // 8) use implicit/ explicit conversion to convert variables from 1).
            // Is it possible?

            // Fix compilation errors (in case of impossible conversion commemt that line).
            // int -> char
            i = ch;
            // bool -> short
            //boo = sh;
            // double -> long
            d0 = l;
            // float -> char
            fl = ch;
            // int to char
            i = ch;
            // decimal -> double
            de = (decimal)d0;
            // byte -> uint
            b = (byte)ui;
            // ulong -> sbyte
            ul = (ulong)sb;
            // 9) and reverse conversion with fixing compilation errors.
            ch = (char)i;
            // bool -> short
            //sh = boo;
            // double -> long
            l = (long)d0;
            // float -> char
            ch = (char)fl;
            // int to char
            ch = (char)i;
            // decimal -> double
            d0 = (double)de;
            // byte -> uint
            ui = b;
            // ulong -> sbyte
            sb = (sbyte)ul;

            // 10) declare int nullable value. Initialize it with 'null'.
            // Try to initialize variable i with 'null'. Is it possible?
            //int nullabe = null;
        }
示例#37
0
 public SpeedHeading3D()
 {
     _Speed = new System.Double();
     _Direction = new ReactiveRTM.RTC.Orientation3D();
 }
示例#38
0
		} //CanConvertFrom
		public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) {
			string[] extrema = ((string)value).Split(new char[] { ' ' }, System.StringSplitOptions.RemoveEmptyEntries);
			return new Domain(Numeric.Parse(extrema[0]), Numeric.Parse(extrema[1]), Numeric.Parse(extrema[2]), Numeric.Parse(extrema[3]));
		} //ConvertFrom
 public void SetLowerLimit(Scalar ang1min)
 {
     btHinge2Constraint_setLowerLimit(Native, ang1min);
 }
示例#40
0
		public WorldPoint(Numeric x, Numeric y) { X = x; Y = y; }
示例#41
0
 /// <summary>
 /// Creates an array of random values in the given range [<paramref name="min"/>, <paramref name="max"/>].
 /// </summary>
 /// <param name="size">The length of the array, aka the number of values</param>
 /// <param name="min">The lower bound.</param>
 /// <param name="max">The upper bound.</param>
 /// <returns>An array of random values</returns>
 public static System.Double[] GetRandomOrdinates(System.Int32 size, System.Double min, System.Double max)
 {
     System.Double[] arr   = new System.Double[size];
     System.Double   width = max - min;
     for (System.Int32 i = 0; i < size; i++)
     {
         System.Double randomValue = _rng.NextDouble();
         arr[i] = min + randomValue * width;
     }
     return(arr);
 }
示例#42
0
 public static VECTOR Lerp(VECTOR a, VECTOR b, FLOAT amount)
 {
     return(VECTOR.Lerp(a, b, amount));
 }
示例#43
0
 public void SetValue(number value)
 {
     _watts = null;
     _value = value;
 }
示例#44
0
 [MethodImpl(MethodImplOptions.AggressiveInlining)] public static VECTOR Lerp(VECTOR a, VECTOR b, FLOAT amount)
 {
     return(VECTOR.Lerp(a, b, amount));
 }
示例#45
0
 public ScalarColor3(Scalar Red, Scalar Green, Scalar Blue)
 {
     this.Red = Red;
     this.Green = Green;
     this.Blue = Blue;
 }
示例#46
0
 [MethodImpl(MethodImplOptions.AggressiveInlining)] public static VECTOR Lerp(VECTOR a, VECTOR b, FLOAT amount)
 {
     return(new VECTOR(a.X + ((b.X - a.X) * amount), a.Y + ((b.Y - a.Y) * amount)));
 }
示例#47
0
 /// <summary>
 /// Gets the tangent of a point on the spline that's close to the desired point along the spline. For example, if u = 0.5, then the direction vector
 /// that's about halfway through the spline will be returned. The returned value will be a normalized direction vector.
 /// </summary>
 /// <param name="u">How far along the spline to sample (for example, 0.5 will be halfway along the length of the spline). Should be between 0 and 1.</param>
 /// <returns>The position on the spline.</returns>
 public VECTOR Tangent(FLOAT u)
 {
     Spline.SamplePos pos = _spline.GetSamplePosition(u);
     return _spline.Curves[pos.Index].Tangent(pos.Time);
 }
示例#48
0
 public PoseFeature()
 {
     _Probability = new System.Double();
     _Position = new ReactiveRTM.RTC.Pose2D();
     _Covariance = new ReactiveRTM.RTC.Covariance2D();
 }
示例#49
0
 /// <summary>
 /// Gets the position of a point on the spline that's close to the desired point along the spline. For example, if u = 0.5, then a point
 /// that's about halfway through the spline will be returned. The returned point will lie exactly on one of the curves that make up the
 /// spline.
 /// </summary>
 /// <param name="u">How far along the spline to sample (for example, 0.5 will be halfway along the length of the spline). Should be between 0 and 1.</param>
 /// <returns>The position on the spline.</returns>
 public VECTOR Sample(FLOAT u)
 {
     return _spline.Sample(u);
 }
示例#50
0
 public PoseFeature(global::RTC.PoseFeature source)
 {
     _Probability = source.probability;
     _Position = new ReactiveRTM.RTC.Pose2D(source.position);
     _Covariance = new ReactiveRTM.RTC.Covariance2D(source.covariance);
 }
示例#51
0
 public RangerConfig()
 {
     _MinAngle = new System.Double();
     _MaxAngle = new System.Double();
     _AngularRes = new System.Double();
     _MinRange = new System.Double();
     _MaxRange = new System.Double();
     _RangeRes = new System.Double();
     _Frequency = new System.Double();
 }
示例#52
0
 public RangerConfig(global::RTC.RangerConfig source)
 {
     _MinAngle = source.minAngle;
     _MaxAngle = source.maxAngle;
     _AngularRes = source.angularRes;
     _MinRange = source.minRange;
     _MaxRange = source.maxRange;
     _RangeRes = source.rangeRes;
     _Frequency = source.frequency;
 }
示例#53
0
 internal NodeFloat(Location location, lfloat value)
     : base(location)
 {
     this.value = value;
 }
示例#54
0
 public RGBColour()
 {
     _R = new System.Double();
     _G = new System.Double();
     _B = new System.Double();
 }
示例#55
0
 public static VECTOR Lerp(VECTOR a, VECTOR b, FLOAT amount) { return VECTOR.Lerp(a, b, amount); }
示例#56
0
 public RGBColour(global::RTC.RGBColour source)
 {
     _R = source.r;
     _G = source.g;
     _B = source.b;
 }
示例#57
0
		static extern GtkObjectPointer gtk_adjustment_new (gdouble value, gdouble lower, gdouble upper, gdouble step_increment, gdouble page_increment, gdouble page_size);
示例#58
0
 public Size2D(global::RTC.Size2D source)
 {
     _L = source.l;
     _W = source.w;
 }
示例#59
0
		static extern GtkWidgetPointer gtk_vscale_new_with_range (gdouble min, gdouble max, gdouble step);
示例#60
0
        public real GetValue(int seed, real3 p)
        {
            int3 ijk = FastRound(p);

            real3 p0 = p - ijk;

            int3 nSign = (int3)(-1.0f - p0) | 1;

            real3 a0 = nSign * -p0;

            ijk *= Prime;

            real value = 0;
            real a     = (0.6f - p0.x * p0.x) - (p0.y * p0.y + p0.z * p0.z);

            for (int l = 0; ; l++)
            {
                if (a > 0)
                {
                    value += (a * a) * (a * a) * GradCoord(seed, ijk.x, ijk.y, ijk.z, p0.x, p0.y, p0.z);
                }

                if (a0.x >= a0.y && a0.x >= a0.z)
                {
                    real b = a + a0.x + a0.x;
                    if (b > 1)
                    {
                        b     -= 1;
                        value += (b * b) * (b * b) * GradCoord(seed, ijk.x - nSign.x * PrimeX, ijk.y, ijk.z, p0.x + nSign.x, p0.y, p0.z);
                    }
                }
                else if (a0.y > a0.x && a0.y >= a0.z)
                {
                    real b = a + a0.y + a0.y;
                    if (b > 1)
                    {
                        b     -= 1;
                        value += (b * b) * (b * b) * GradCoord(seed, ijk.x, ijk.y - nSign.y * PrimeY, ijk.z, p0.x, p0.y + nSign.y, p0.z);
                    }
                }
                else
                {
                    real b = a + a0.z + a0.z;
                    if (b > 1)
                    {
                        b     -= 1;
                        value += (b * b) * (b * b) * GradCoord(seed, ijk.x, ijk.y, ijk.z - nSign.z * PrimeZ, p0.x, p0.y, p0.z + nSign.z);
                    }
                }

                if (l == 1)
                {
                    break;
                }

                a0 = 0.5f - a0;
                p0 = nSign * a0;

                a += (0.75f - a0.x) - (a0.y + a0.z);

                ijk += (nSign >> 1) & Prime;

                nSign = -nSign;
                seed  = ~seed;
            }

            return(value * 32.69428253173828125f);
        }