Beispiel #1
0
        internal override float[] GetQ(int i, int len)
        {
            float[][] data = new float[1][];
            int       start;

            if ((start = cache.GetData(i, data, len)) < len)
            {
                int j;
                for (j = start; j < len; j++)
                {
                    data[0][j] = (float)(y[i] * y[j] * KernelFunctionEval(i, j));
                }
            }
            return(data[0]);
        }
Beispiel #2
0
        internal override float[] GetQ(int i, int len)
        {
            float[][] data = new float[1][];
            int       j, realI = index[i];

            if (cache.GetData(realI, data, l) < l)
            {
                for (j = 0; j < l; j++)
                {
                    data[0][j] = (float)KernelFunctionEval(realI, j);
                }
            }
            // reorder and copy
            float[] buf = buffer[nextBuffer];
            nextBuffer = 1 - nextBuffer;
            short si = sign[i];

            for (j = 0; j < len; j++)
            {
                buf[j] = (float)si * sign[j] * data[0][index[j]];
            }
            return(buf);
        }