newWithDouble() public static method

public static newWithDouble ( IoState state, double n ) : IoNumber
state IoState
n double
return IoNumber
Esempio n. 1
0
        // Published Slots

        public static IoObject slotCompare(IoObject self, IoObject locals, IoObject message)
        {
            IoMessage m = message as IoMessage;
            IoObject  o = m.localsValueArgAt(locals, 0);

            return(IoNumber.newWithDouble(self.state, Convert.ToDouble(self.compare(o))));
        }
Esempio n. 2
0
        private static IEnumerator Recurse2(IoCoroutine f)
        {
            //yield return null; // just create and quit // 1

            //f.fiber.Yield(f);

            IoCoroutine ccc = IoCoroutine.createObject(IoCLI.state);

            ccc.fiber             = new Fiber();
            ccc.fiber.currentCoro = ccc;
            //yield return
            ccc.fiber.currentRoutine = new FiberProc(IoCLI.Recurse3 /*(ccc)*/);
            if (coro.fiber.State == 4)
            {
                Console.WriteLine("Creation Error. Fiber Exceeds on Recurse 2 " + f.uniqueId);
                IoCLI.yieldingCoros.Remove(f);
                return(null);
            }
            ccc.rawSetResult(IoNumber.newWithDouble(IoCLI.state, 42));
            ccc.rawSetRunLocals(IoCLI.state.core);
            ccc.rawSetRunMessage(IoCLI.state.nilMessage);
            ccc.rawSetRunTarget(ccc);
            IoCLI.yieldingCoros.Add(ccc);

            //Console.WriteLine("Coro2 " + f.uniqueId + " creates Coro3 + " + ccc.uniqueId);

            IoCLI.yieldingCoros.Remove(f);
            //yield return null; // 2

            return(null);
        }
Esempio n. 3
0
        public static IoObject slotSubstract(IoObject self, IoObject locals, IoObject message)
        {
            IoMessage m = message as IoMessage;
            IoNumber  o = m.localsNumberArgAt(locals, 0);

            return(IoNumber.newWithDouble(self.state, -o.asDouble()));
        }
Esempio n. 4
0
        // setSlot("A", 32.45 + (20*(5836 log10)) + (20*(8.5 log10)))
        // !link-budget 22 0 13 126.3606841787141377 8 0

        public static IoObject slotLog2(IoObject target, IoObject locals, IoObject message)
        {
            // IoNumber other = (message as IoMessage).localsNumberArgAt(locals, 0);
            IoNumber self = target as IoNumber;

            return(IoNumber.newWithDouble(target.state,
                                          Math.Log(self.isInteger ? self.longValue : self.doubleValue, 2)));
        }
Esempio n. 5
0
        public static IoObject slotRound(IoObject target, IoObject locals, IoObject message)
        {
            IoNumber self = target as IoNumber;

            return(IoNumber.newWithDouble(target.state,
                                          Math.Round(self.isInteger ? self.longValue : self.doubleValue)
                                          ));
        }
Esempio n. 6
0
        public static IoObject slotDivide(IoObject target, IoObject locals, IoObject message)
        {
            IoNumber other = (message as IoMessage).localsNumberArgAt(locals, 0);
            IoNumber self  = target as IoNumber;

            return(IoNumber.newWithDouble(target.state,
                                          (self.isInteger ? self.longValue : self.doubleValue) /
                                          (other.isInteger ? other.longValue : other.doubleValue)));
        }
Esempio n. 7
0
        public static IoObject slotSize(IoObject target, IoObject locals, IoObject m)
        {
            IoMap dict = target as IoMap;

            if (dict.map != null)
            {
                return(IoNumber.newWithDouble(dict.tag.state, dict.map.Count));
            }
            return(dict.tag.state.ioNil);
        }
Esempio n. 8
0
File: IoList.cs Progetto: ypyf/io
        // Published Slots

        public static IoObject slotIndexOf(IoObject target, IoObject locals, IoObject m)
        {
            IoList   o     = target as IoList;
            IoObject value = (m as IoMessage).localsValueArgAt(locals, 1);

            try
            {
                return(IoNumber.newWithDouble(target.state, o.list.IndexOf(value)));
            }
            catch (ArgumentOutOfRangeException aoore)
            {
                object ex = aoore;
                return(target.state.ioNil);
            }
        }
Esempio n. 9
0
        private static IEnumerator Recurse3(IoCoroutine f)
        {
            IoCoroutine ccc = IoCoroutine.createObject(IoCLI.state);

            ccc.fiber                = new Fiber();
            ccc.fiber.currentCoro    = ccc;
            ccc.fiber.currentRoutine = IoCLI.Recurse4(ccc);
            ccc.rawSetResult(IoNumber.newWithDouble(IoCLI.state, 42));
            ccc.rawSetRunLocals(IoCLI.state.core);
            ccc.rawSetRunMessage(IoCLI.state.nilMessage);
            ccc.rawSetRunTarget(ccc);
            IoCLI.yieldingCoros.Add(ccc);

            Console.WriteLine("Recurse3+" + i++);

            yield return(ccc);
        }
Esempio n. 10
0
        private static IEnumerator Recurse2(IoCoroutine f)
        {
            yield return(null); // just create and quit

            IoCoroutine ccc = IoCoroutine.createObject(IoCLI.state);

            ccc.fiber                = new Fiber();
            ccc.fiber.currentCoro    = ccc;
            ccc.fiber.currentRoutine = IoCLI.Recurse3(ccc);
            ccc.rawSetResult(IoNumber.newWithDouble(IoCLI.state, 42));
            ccc.rawSetRunLocals(IoCLI.state.core);
            ccc.rawSetRunMessage(IoCLI.state.nilMessage);
            ccc.rawSetRunTarget(ccc);
            IoCLI.yieldingCoros.Add(ccc);

            yield return(ccc);
        }
Esempio n. 11
0
File: IoMessage.cs Progetto: ypyf/io
        void ifPossibleCacheToken(IoToken token)
        {
            IoSeq    method = this.messageName;
            IoObject r      = null;

            switch (token.type)
            {
            case IoTokenType.TRIQUOTE_TOKEN:
                break;

            case IoTokenType.MONOQUOTE_TOKEN:
                r = IoSeq.createSymbolInMachine(
                    method.state,
                    IoSeq.rawAsUnescapedSymbol(
                        IoSeq.rawAsUnquotedSymbol(
                            IoSeq.createObject(method.state, method.value)
                            )
                        ).value
                    );
                break;

            case IoTokenType.NUMBER_TOKEN:
                r = IoNumber.newWithDouble(this.state, Convert.ToDouble(method.value, CultureInfo.InvariantCulture));
                break;

            default:
                if (method.value.Equals("nil"))
                {
                    r = state.ioNil;
                }
                else if (method.value.Equals("true"))
                {
                    r = state.ioTrue;
                }
                else if (method.value.Equals("false"))
                {
                    r = state.ioFalse;
                }
                break;
            }
            this.cachedResult = r;
        }
Esempio n. 12
0
        public static IoObject slotYield(IoObject target, IoObject locals, IoObject message)
        {
            IoState state = target.state;
            List <IEnumerator <IoObject> > toDeleteThread = new List <IEnumerator <IoObject> >();

            for (int i = 0; i < state.contextList.Count; i++)
            {
                IEnumerator <IoObject> e = state.contextList[i];
                bool end = e.MoveNext();
                if (!end)
                {
                    toDeleteThread.Add(e);
                }
            }
            foreach (var e in toDeleteThread)
            {
                state.contextList.Remove(e);
            }
            return(IoNumber.newWithDouble(state, state.contextList.Count));
        }
Esempio n. 13
0
        private static IEnumerator Recurse3(IoCoroutine f)
        {
            int i = 0;

            IoCoroutine ccc = IoCoroutine.createObject(IoCLI.state);

            ccc.fiber             = new Fiber();
            ccc.fiber.currentCoro = ccc;
            //yield return
            ccc.fiber.currentRoutine = new FiberProc(IoCLI.Recurse4 /*(ccc)*/);
            if (coro.fiber.State == 4)
            {
                Console.WriteLine("Creation Error. Fiber Exceeds on Recurse 3 " + f.uniqueId);
                IoCLI.yieldingCoros.Remove(f);
                return(null);
            }
            ccc.rawSetResult(IoNumber.newWithDouble(IoCLI.state, 42));
            ccc.rawSetRunLocals(IoCLI.state.core);
            ccc.rawSetRunMessage(IoCLI.state.nilMessage);
            ccc.rawSetRunTarget(ccc);
            IoCLI.yieldingCoros.Add(ccc);

            IoCLI.yieldingCorosCount++;

            //Console.WriteLine("Coro3 " + f.uniqueId + " creates Coro4 + " + ccc.uniqueId);

            while (i < 2)
            {
                // f.fiber.Yield(f);
                //Console.WriteLine("Recurse3 Fiber: " + f.uniqueId + " Iteration: " + i++);
                //yield return null;
                i++;
            }

            IoCLI.yieldingCoros.Remove(f);

            return(null);
        }
Esempio n. 14
0
        public static IoObject slotE(IoObject target, IoObject locals, IoObject message)
        {
            IoNumber self = target as IoNumber;

            return(IoNumber.newWithDouble(target.state, Math.E));
        }
Esempio n. 15
0
        public static IoObject slotMinPositive(IoObject target, IoObject locals, IoObject message)
        {
            IoNumber self = target as IoNumber;

            return(IoNumber.newWithDouble(target.state, Double.Epsilon));
        }
Esempio n. 16
0
 public static IoObject slotYieldingCoros(IoObject target, IoObject locals, IoObject message)
 {
     return(IoNumber.newWithDouble(target.state, target.state.contextList.Count));
 }
Esempio n. 17
0
File: IoList.cs Progetto: ypyf/io
        public static IoObject slotSize(IoObject target, IoObject locals, IoObject m)
        {
            IoList o = target as IoList;

            return(IoNumber.newWithDouble(target.state, o.list.Count));
        }
Esempio n. 18
0
File: IoMessage.cs Progetto: ypyf/io
        public static IoObject slotArgCount(IoObject target, IoObject locals, IoObject message)
        {
            IoMessage self = target as IoMessage;

            return(IoNumber.newWithDouble(target.state, Convert.ToDouble(self.args.Count)));
        }