/// <summary>
        /// WFG4 t1 transformation
        /// </summary>
        /// <param name="z"></param>
        /// <param name="k"></param>
        /// <returns></returns>
        public float[] T1(float[] z, int k)
        {
            float[] result = new float[z.Length];

            for (int i = 0; i < z.Length; i++)
            {
                result[i] = Transformations.S_multi(z[i], 30, 10, (float)0.35);
            }

            return(result);
        }
        /// <summary>
        /// WFG9 t2 transformation
        /// </summary>
        /// <param name="z"></param>
        /// <param name="k"></param>
        /// <returns></returns>
        public float[] T2(float[] z, int k)
        {
            float[] result = new float[z.Length];

            for (int i = 0; i < k; i++)
            {
                result[i] = Transformations.S_decept(z[i], (float)0.35, (float)0.001, (float)0.05);
            }

            for (int i = k; i < z.Length; i++)
            {
                result[i] = Transformations.S_multi(z[i], 30, 95, (float)0.35);
            }

            return(result);
        }