/// <summary>
        /// Value equality.
        /// </summary>
        /// <param name="p">The Axis to compare with.</param>
        /// <returns>Returns true if they are equal.</returns>
        public bool Equals(Axis p)
        {
            // If parameter is null return false:
            if ((object)p == null)
            {
                return(false);
            }

            // Return true if the fields match:
            return(CNTKLib.AreEqual(this, p));
        }
        /// <summary>
        /// Value equality.
        /// </summary>
        /// <param name="obj">The object to compare with.</param>
        /// <returns>Returns true if they are equal.</returns>
        public override bool Equals(Object obj)
        {
            // If parameter is null return false.
            if (obj == null)
            {
                return(false);
            }

            // If parameter cannot be cast to Point return false.
            Axis p = obj as Axis;

            if ((Object)p == null)
            {
                return(false);
            }

            // Return true if the fields match:
            return(CNTKLib.AreEqual(this, p));
        }