internal static IMeasurement[] CreateMeasures(double[] state, double[] der,
                                                          RationalTransformControlSystemData transform, IMeasurement measure, out List <string> mes)
            {
                mes = new List <string>();
                List <IMeasurement> l = new List <IMeasurement>();

                new MeasureInternal(state, der, 0, "x", l, measure, mes);
                if (transform.nom.Length == transform.denom.Length)
                {
                    l.Add(transform);
                }
                else
                {
                    l.Add(new OutputMeasure(transform));
                }
                return(l.ToArray());
            }
            internal OutputMeasure(RationalTransformControlSystemData transform)
            {
                name       = "Output";
                vector     = new double[transform.denom.Length - transform.nom.Length + 1];
                i          = 0;
                outputs    = new OutputMeasure[vector.Length - 1];
                outputs[0] = this;
                par        = () =>
                {
                    transform.CalculateDerivations(vector);
                    return(vector[i]);
                };
                for (int j = 1; j < vector.Length - 1; j++)
                {
                    new OutputMeasure(j, vector, outputs);
                }
                for (int j = 0; j < vector.Length - 2; j++)
                {
                    outputs[j].der = outputs[j + 1];
                }
                int n = vector.Length - 1;

                outputs[vector.Length - 2].der = new LastMeasure(vector);
            }