Modular Structure 
Namespace: Accord.Math.Distances
[SerializableAttribute] public struct Modular : IDistance<double>, IDistance<double, double>, IDistance<int>, IDistance<int, int>
The Modular type exposes the following members.
Name  Description  

Modulo 
Gets the maximum value that the distance can
have before it wraps around in the circle.

Name  Description  

Distance(Double, Double) 
Computes the distance d(x,y) between points
x and y.
 
Distance(Int32, Int32) 
Computes the distance d(x,y) between points
x and y.
 
Equals  Indicates whether this instance and a specified object are equal. (Inherited from ValueType.)  
GetHashCode  Returns the hash code for this instance. (Inherited from ValueType.)  
GetType  Gets the Type of the current instance. (Inherited from Object.)  
ToString  Returns the fully qualified type name of this instance. (Inherited from ValueType.) 
Name  Description  

HasMethod 
Checks whether an object implements a method with the given name.
(Defined by ExtensionMethods.)  
IsEqual 
Compares two objects for equality, performing an elementwise
comparison if the elements are vectors or matrices.
(Defined by Matrix.)  
To(Type)  Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.)  
ToT  Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.) 
The modular distance is the distance of two member in a circular space, or a ring. Roughly, it can be understood as the minimum difference between two numbers in this circular space, either going “clockwise” or “counterclockwise”. For example, in a circle, the modular distance between 1° and 359° is 2° (and not 358°).
References: