Patent Publication Number: US-11645096-B2

Title: Computer architecture for performing multiplication using correlithm objects in a correlithm object processing system

Description:
TECHNICAL FIELD 
     The present disclosure relates generally to computer architectures for emulating a processing system, and more specifically to a computer architecture for performing multiplication using correlithm objects in a correlithm object processing system. 
     BACKGROUND 
     Conventional computers are highly attuned to using operations that require manipulating ordinal numbers, especially ordinal binary integers. The value of an ordinal number corresponds with its position in a set of sequentially ordered number values. These computers use ordinal binary integers to represent, manipulate, and store information. These computers rely on the numerical order of ordinal binary integers representing data to perform various operations such as counting, sorting, indexing, and mathematical calculations. Even when performing operations that involve other number systems (e.g. floating point), conventional computers still resort to using ordinal binary integers to perform any operations. 
     Ordinal based number systems only provide information about the sequence order of the numbers themselves based on their numeric values. Ordinal numbers do not provide any information about any other types of relationships for the data being represented by the numeric values such as similarity. For example, when a conventional computer uses ordinal numbers to represent data samples (e.g. images or audio signals), different data samples are represented by different numeric values. The different numeric values do not provide any information about how similar or dissimilar one data sample is from another. Unless there is an exact match in ordinal number values, conventional systems are unable to tell if a data sample matches or is similar to any other data samples. As a result, conventional computers are unable to use ordinal numbers by themselves for comparing different data samples and instead these computers rely on complex signal processing techniques. Determining whether a data sample matches or is similar to other data samples is not a trivial task and poses several technical challenges for conventional computers. These technical challenges result in complex processes that consume processing power which reduces the speed and performance of the system. The ability to compare unknown data samples to known data samples is crucial for many security applications such as facial recognition, voice recognition, and fraud detection. 
     Thus, it is desirable to provide a solution that allows computing systems to efficiently determine how similar different data samples are to each other and to perform operations based on their similarity. 
     SUMMARY 
     Conventional computers are highly attuned to using operations that require manipulating ordinal numbers, especially ordinal binary integers. The value of an ordinal number corresponds with its position in a set of sequentially ordered number values. These computers use ordinal binary integers to represent, manipulate, and store information. These computers rely on the numerical order of ordinal binary integers representing data to perform various operations such as counting, sorting, indexing, and mathematical calculations. Even when performing operations that involve other number systems (e.g. floating point), conventional computers still resort to using ordinal binary integers to perform any operations. 
     Ordinal based number systems only provide information about the sequence order of the numbers themselves based on their numeric values. Ordinal numbers do not provide any information about any other types of relationships for the data being represented by the numeric values such as similarity. For example, when a conventional computer uses ordinal numbers to represent data samples (e.g. images or audio signals), different data samples are represented by different numeric values. The different numeric values do not provide any information about how similar or dissimilar one data sample is from another. Unless there is an exact match in ordinal number values, conventional systems are unable to tell if a data sample matches or is similar to any other data samples. As a result, conventional computers are unable to use ordinal numbers by themselves for comparing different data samples and instead these computers rely on complex signal processing techniques. Determining whether a data sample matches or is similar to other data samples is not a trivial task and poses several technical challenges for conventional computers. These technical challenges result in complex processes that consume processing power which reduces the speed and performance of the system. The ability to compare unknown data samples to known data samples is crucial for many applications such as security application (e.g. face recognition, voice recognition, and fraud detection). 
     The system described in the present application provides a technical solution that enables the system to efficiently determine how similar different objects are to each other and to perform operations based on their similarity. In contrast to conventional systems, the system uses an unconventional configuration to perform various operations using categorical numbers and geometric objects, also referred to as correlithm objects, instead of ordinal numbers. Using categorical numbers and correlithm objects on a conventional device involves changing the traditional operation of the computer to support representing and manipulating concepts as correlithm objects. A device or system may be configured to implement or emulate a special purpose computing device capable of performing operations using correlithm objects. Implementing or emulating a correlithm object processing system improves the operation of a device by enabling the device to perform non-binary comparisons (i.e., match or no match) between different data samples. This enables the device to quantify a degree of similarity between different data samples. This increases the flexibility of the device to work with data samples having different data types and/or formats, and also increases the speed and performance of the device when performing operations using data samples. These technical advantages and other improvements to the device are described in more detail throughout the disclosure. 
     In one embodiment, the system is configured to use binary integers as categorical numbers rather than ordinal numbers which enables the system to determine how similar a data sample is to other data samples. Categorical numbers provide information about similar or dissimilar different data samples are from each other. For example, categorical numbers can be used in facial recognition applications to represent different images of faces and/or features of the faces. The system provides a technical advantage by allowing the system to assign correlithm objects represented by categorical numbers to different data samples based on how similar they are to other data samples. As an example, the system is able to assign correlithm objects to different images of people such that the correlithm objects can be directly used to determine how similar the people in the images are to each other. In other words, the system can use correlithm objects in facial recognition applications to quickly determine whether a captured image of a person matches any previously stored images without relying on conventional signal processing techniques. 
     Correlithm object processing systems use new types of data structures called correlithm objects that improve the way a device operates, for example, by enabling the device to perform non-binary data set comparisons and to quantify the similarity between different data samples. Correlithm objects are data structures designed to improve the way a device stores, retrieves, and compares data samples in memory. Correlithm objects also provide a data structure that is independent of the data type and format of the data samples they represent. Correlithm objects allow data samples to be directly compared regardless of their original data type and/or format. 
     A correlithm object processing system uses a combination of a sensor table, a node table, and/or an actor table to provide a specific set of rules that improve computer-related technologies by enabling devices to compare and to determine the degree of similarity between different data samples regardless of the data type and/or format of the data sample they represent. The ability to directly compare data samples having different data types and/or formatting is a new functionality that cannot be performed using conventional computing systems and data structures. 
     In addition, correlithm object processing system uses a combination of a sensor table, a node table, and/or an actor table to provide a particular manner for transforming data samples between ordinal number representations and correlithm objects in a correlithm object domain. Transforming data samples between ordinal number representations and correlithm objects involves fundamentally changing the data type of data samples between an ordinal number system and a categorical number system to achieve the previously described benefits of the correlithm object processing system. 
     Using correlithm objects allows the system or device to compare data samples (e.g. images) even when the input data sample does not exactly match any known or previously stored input values. For example, an input data sample that is an image may have different lighting conditions than the previously stored images. The differences in lighting conditions can make images of the same person appear different from each other. The device uses an unconventional configuration that implements a correlithm object processing system that uses the distance between the data samples which are represented as correlithm objects and other known data samples to determine whether the input data sample matches or is similar to the other known data samples. Implementing a correlithm object processing system fundamentally changes the device and the traditional data processing paradigm. Implementing the correlithm object processing system improves the operation of the device by enabling the device to perform non-binary comparisons of data samples. In other words, the device can determine how similar the data samples are to each other even when the data samples are not exact matches. In addition, the device can quantify how similar data samples are to one another. The ability to determine how similar data samples are to each other is unique and distinct from conventional computers that can only perform binary comparisons to identify exact matches. 
     A string correlithm object comprising a series of adjacent sub-string correlithm objects whose cores overlap with each other to permit data values to be correlated with each other in n-dimensional space. The distance between adjacent sub-string correlithm objects can be selected to create a tighter or looser correlation among the elements of the string correlithm object in n-dimensional space. Thus, where data values have a pre-existing relationship with each other in the real-world, those relationships can be maintained in n-dimensional space if they are represented by sub-string correlithm objects of a string correlithm object. In addition, new data values can be represented by sub-string correlithm objects by interpolating the distance between those and other data values and representing that interpolation with sub-string correlithm objects of a string correlithm object in n-dimensional space. The ability to migrate these relationships between data values in the real world to relationships among correlithm objects provides a significant advance in the ability to record, store, and faithfully reproduce data within different computing environments. Furthermore, the use of string correlithm objects significantly reduces the computational burden of comparing time-varying sequences of data, or multi-dimensional data objects, with respect to conventional forms of executing dynamic time warping algorithms. The reduced computational burden results in faster processing speeds and reduced loads on memory structures used to perform the comparison of string correlithm objects. 
     The problems associated with comparing data sets and identifying matches based on the comparison are problems necessarily rooted in computer technologies. As described above, conventional systems are limited to a binary comparison that can only determine whether an exact match is found. Emulating a correlithm object processing system provides a technical solution that addresses problems associated with comparing data sets and identifying matches. Using correlithm objects to represent data samples fundamentally changes the operation of a device and how the device views data samples. By implementing a correlithm object processing system, the device can determine the distance between the data samples and other known data samples to determine whether the input data sample matches or is similar to the other known data samples. In addition, the device can determine a degree of similarity that quantifies how similar different data samples are to one another. 
     Sub-string correlithm objects of a string correlithm object can be used to perform mathematical operations using correlithm objects, which facilitates homomorphic computing. Homomorphic computing offers a way to perform computations in a distributed setting or in the cloud thereby addressing many of the technical problems associated with storing, moving, and converting data back and forth between real-world values and correlithm objects. This increases processing speeds and reduces the amount of memory necessary for performing computations. 
     Certain embodiments of the present disclosure may include some, all, or none of these advantages. These advantages and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts. 
         FIG.  1    is a schematic view of an embodiment of a special purpose computer implementing correlithm objects in an n-dimensional space; 
         FIG.  2    is a perspective view of an embodiment of a mapping between correlithm objects in different n-dimensional spaces; 
         FIG.  3    is a schematic view of an embodiment of a correlithm object processing system; 
         FIG.  4    is a protocol diagram of an embodiment of a correlithm object process flow; 
         FIG.  5    is a schematic diagram of an embodiment a computer architecture for emulating a correlithm object processing system; 
         FIG.  6    illustrates an embodiment of how a string correlithm object may be implemented within a node by a device; 
         FIG.  7    illustrates another embodiment of how a string correlithm object may be implemented within a node by a device; 
         FIG.  8    is a schematic diagram of another embodiment of a device implementing string correlithm objects in a node for a correlithm object processing system; 
         FIG.  9    is an embodiment of a graph of a probability distribution for matching a random correlithm object with a particular correlithm object; 
         FIG.  10    is a schematic diagram of an embodiment of a device implementing a correlithm object core in a node for a correlithm object processing system; 
         FIG.  11    is an embodiment of a graph of probability distributions for adjacent root correlithm objects; 
         FIG.  12 A  is an embodiment of a string correlithm object generator; 
         FIG.  12 B  is an embodiment of a table demonstrating a change in bit values associated with sub-string correlithm objects; 
         FIG.  13    is an embodiment of a process for generating a string correlithm object; 
         FIG.  14    is an embodiment of discrete data values mapped to sub-string correlithm objects of a string correlithm object; 
         FIG.  15 A  is an embodiment of analog data values mapped to sub-string correlithm objects of a string correlithm object; 
         FIG.  15 B  is an embodiment of a table demonstrating how to map analog data values to sub-string correlithm objects using interpolation; 
         FIG.  16    is an embodiment of non-string correlithm objects mapped to sub-string correlithm objects of a string correlithm object; 
         FIG.  17    is an embodiment of a process for mapping non-string correlithm objects to sub-string correlithm objects of a string correlithm object; 
         FIG.  18    is an embodiment of sub-string correlithm objects of a first string correlithm object mapped to sub-string correlithm objects of a second string correlithm objects; 
         FIG.  19    is an embodiment of a process for mapping sub-string correlithm objects of a first string correlithm object to sub-string correlithm objects of a second string correlithm objects; 
         FIG.  20    illustrates one embodiment of an actor that maps sub-string correlithm objects of a string correlithm object to analog or discrete data values; 
         FIG.  21    is an embodiment of a process for mapping sub-string correlithm objects of a string correlithm object to analog or discrete data values; 
         FIG.  22    is an embodiment of a correlithm object processing system to represent positional digits using correlithm objects; 
         FIG.  23    is an embodiment of a correlithm object processing system to represent an exponential form using correlithm objects; 
         FIGS.  24 A-B  is an embodiment of a correlithm object processing system to perform addition using correlithm objects; 
         FIGS.  25 A-C  is an embodiment of a correlithm object processing system to perform subtraction using correlithm objects; 
         FIG.  26    is an embodiment of a correlithm object processing system to perform multiplication using correlithm objects; 
         FIG.  27    is an embodiment of a correlithm object processing system to perform division using correlithm objects; and 
         FIG.  28    is an embodiment of a correlithm object processing system to perform inversion using correlithm objects. 
     
    
    
     DETAILED DESCRIPTION 
       FIGS.  1 - 5    describe various embodiments of how a correlithm object processing system may be implemented or emulated in hardware, such as a special purpose computer.  FIGS.  6 - 19    describe various embodiments of how a correlithm object processing system can generate and use string correlithm objects to record and faithfully playback data values.  FIGS.  20 - 28    describe various embodiments of how correlithm objects  104  can be used to represent digits of real-world numerical values and how to perform mathematical operations on correlithm objects  104  using string correlithm objects  602 . 
       FIG.  1    is a schematic view of an embodiment of a user device  100  implementing correlithm objects  104  in an n-dimensional space  102 . Examples of user devices  100  include, but are not limited to, desktop computers, mobile phones, tablet computers, laptop computers, or other special purpose computer platform. The user device  100  is configured to implement or emulate a correlithm object processing system that uses categorical numbers to represent data samples as correlithm objects  104  in a high-dimensional space  102 , for example a high-dimensional binary cube. Additional information about the correlithm object processing system is described in  FIG.  3   . Additional information about configuring the user device  100  to implement or emulate a correlithm object processing system is described in  FIG.  5   . 
     Conventional computers rely on the numerical order of ordinal binary integers representing data to perform various operations such as counting, sorting, indexing, and mathematical calculations. Even when performing operations that involve other number systems (e.g. floating point), conventional computers still resort to using ordinal binary integers to perform any operations. Ordinal based number systems only provide information about the sequence order of the numbers themselves based on their numeric values. Ordinal numbers do not provide any information about any other types of relationships for the data being represented by the numeric values, such as similarity. For example, when a conventional computer uses ordinal numbers to represent data samples (e.g. images or audio signals), different data samples are represented by different numeric values. The different numeric values do not provide any information about how similar or dissimilar one data sample is from another. In other words, conventional computers are only able to make binary comparisons of data samples which only results in determining whether the data samples match or do not match. Unless there is an exact match in ordinal number values, conventional systems are unable to tell if a data sample matches or is similar to any other data samples. As a result, conventional computers are unable to use ordinal numbers by themselves for determining similarity between different data samples, and instead these computers rely on complex signal processing techniques. Determining whether a data sample matches or is similar to other data samples is not a trivial task and poses several technical challenges for conventional computers. These technical challenges result in complex processes that consume processing power which reduces the speed and performance of the system. 
     In contrast to conventional systems, the user device  100  operates as a special purpose machine for implementing or emulating a correlithm object processing system. Implementing or emulating a correlithm object processing system improves the operation of the user device  100  by enabling the user device  100  to perform non-binary comparisons (i.e. match or no match) between different data samples. This enables the user device  100  to quantify a degree of similarity between different data samples. This increases the flexibility of the user device  100  to work with data samples having different data types and/or formats, and also increases the speed and performance of the user device  100  when performing operations using data samples. These improvements and other benefits to the user device  100  are described in more detail below and throughout the disclosure. 
     For example, the user device  100  employs the correlithm object processing system to allow the user device  100  to compare data samples even when the input data sample does not exactly match any known or previously stored input values. Implementing a correlithm object processing system fundamentally changes the user device  100  and the traditional data processing paradigm. Implementing the correlithm object processing system improves the operation of the user device  100  by enabling the user device  100  to perform non-binary comparisons of data samples. In other words, the user device  100  is able to determine how similar the data samples are to each other even when the data samples are not exact matches. In addition, the user device  100  is able to quantify how similar data samples are to one another. The ability to determine how similar data samples are to each other is unique and distinct from conventional computers that can only perform binary comparisons to identify exact matches. 
     The user device&#39;s  100  ability to perform non-binary comparisons of data samples also fundamentally changes traditional data searching paradigms. For example, conventional search engines rely on finding exact matches or exact partial matches of search tokens to identify related data samples. For instance, conventional text-based search engines are limited to finding related data samples that have text that exactly matches other data samples. These search engines only provide a binary result that identifies whether or not an exact match was found based on the search token. Implementing the correlithm object processing system improves the operation of the user device  100  by enabling the user device  100  to identify related data samples based on how similar the search token is to other data sample. These improvements result in increased flexibility and faster search time when using a correlithm object processing system. The ability to identify similarities between data samples expands the capabilities of a search engine to include data samples that may not have an exact match with a search token but are still related and similar in some aspects. The user device  100  is also able to quantify how similar data samples are to each other based on characteristics besides exact matches to the search token. Implementing the correlithm object processing system involves operating the user device  100  in an unconventional manner to achieve these technological improvements as well as other benefits described below for the user device  100 . 
     Computing devices typically rely on the ability to compare data sets (e.g. data samples) to one another for processing. For example, in security or authentication applications a computing device is configured to compare an input of an unknown person to a data set of known people (or biometric information associated with these people). The problems associated with comparing data sets and identifying matches based on the comparison are problems necessarily rooted in computer technologies. As described above, conventional systems are limited to a binary comparison that can only determine whether an exact match is found. As an example, an input data sample that is an image of a person may have different lighting conditions than previously stored images. In this example, different lighting conditions can make images of the same person appear different from each other. Conventional computers are unable to distinguish between two images of the same person with different lighting conditions and two images of two different people without complicated signal processing. In both of these cases, conventional computers can only determine that the images are different. This is because conventional computers rely on manipulating ordinal numbers for processing. 
     In contrast, the user device  100  uses an unconventional configuration that uses correlithm objects to represent data samples. Using correlithm objects to represent data samples fundamentally changes the operation of the user device  100  and how the device views data samples. By implementing a correlithm object processing system, the user device  100  can determine the distance between the data samples and other known data samples to determine whether the input data sample matches or is similar to the other known data samples, as explained in detail below. Unlike the conventional computers described in the previous example, the user device  100  is able to distinguish between two images of the same person with different lighting conditions and two images of two different people by using correlithm objects  104 . Correlithm objects allow the user device  100  to determine whether there are any similarities between data samples, such as between two images that are different from each other in some respects but similar in other respects. For example, the user device  100  is able to determine that despite different lighting conditions, the same person is present in both images. 
     In addition, the user device  100  is able to determine a degree of similarity that quantifies how similar different data samples are to one another. Implementing a correlithm object processing system in the user device  100  improves the operation of the user device  100  when comparing data sets and identifying matches by allowing the user device  100  to perform non-binary comparisons between data sets and to quantify the similarity between different data samples. In addition, using a correlithm object processing system results in increased flexibility and faster search times when comparing data samples or data sets. Thus, implementing a correlithm object processing system in the user device  100  provides a technical solution to a problem necessarily rooted in computer technologies. 
     The ability to implement a correlithm object processing system provides a technical advantage by allowing the system to identify and compare data samples regardless of whether an exact match has been previous observed or stored. In other words, using the correlithm object processing system the user device  100  is able to identify similar data samples to an input data sample in the absence of an exact match. 
     This functionality is unique and distinct from conventional computers that can only identify data samples with exact matches. 
     Examples of data samples include, but are not limited to, images, files, text, audio signals, biometric signals, electric signals, or any other suitable type of data. A correlithm object  104  is a point in the n-dimensional space  102 , sometimes called an “n-space.” The value of represents the number of dimensions of the space. For example, an n-dimensional space  102  may be a 3-dimensional space, a 50-dimensional space, a 100-dimensional space, or any other suitable dimension space. The number of dimensions depends on its ability to support certain statistical tests, such as the distances between pairs of randomly chosen points in the space approximating a normal distribution. In some embodiments, increasing the number of dimensions in the n-dimensional space  102  modifies the statistical properties of the system to provide improved results. Increasing the number of dimensions increases the probability that a correlithm object  104  is similar to other adjacent correlithm objects  104 . In other words, increasing the number of dimensions increases the correlation between how close a pair of correlithm objects  104  are to each other and how similar the correlithm objects  104  are to each other. 
     Correlithm object processing systems use new types of data structures called correlithm objects  104  that improve the way a device operates, for example, by enabling the device to perform non-binary data set comparisons and to quantify the similarity between different data samples. Correlithm objects  104  are data structures designed to improve the way a device stores, retrieves, and compares data samples in memory. Unlike conventional data structures, correlithm objects  104  are data structures where objects can be expressed in a high-dimensional space such that distance  106  between points in the space represent the similarity between different objects or data samples. In other words, the distance  106  between a pair of correlithm objects  104  in the n-dimensional space  102  indicates how similar the correlithm objects  104  are from each other and the data samples they represent. Correlithm objects  104  that are close to each other are more similar to each other than correlithm objects  104  that are further apart from each other. For example, in a facial recognition application, correlithm objects  104  used to represent images of different types of glasses may be relatively close to each other compared to correlithm objects  104  used to represent images of other features such as facial hair. An exact match between two data samples occurs when their corresponding correlithm objects  104  are the same or have no distance between them. When two data samples are not exact matches but are similar, the distance between their correlithm objects  104  can be used to indicate their similarities. In other words, the distance  106  between correlithm objects  104  can be used to identify both data samples that exactly match each other as well as data samples that do not match but are similar. This feature is unique to a correlithm processing system and is unlike conventional computers that are unable to detect when data samples are different but similar in some aspects. 
     Correlithm objects  104  also provide a data structure that is independent of the data type and format of the data samples they represent. Correlithm objects  104  allow data samples to be directly compared regardless of their original data type and/or format. In some instances, comparing data samples as correlithm objects  104  is computationally more efficient and faster than comparing data samples in their original format. For example, comparing images using conventional data structures involves significant amounts of image processing which is time consuming and consumes processing resources. Thus, using correlithm objects  104  to represent data samples provides increased flexibility and improved performance compared to using other conventional data structures. 
     In one embodiment, correlithm objects  104  may be represented using categorical binary strings. The number of bits used to represent the correlithm object  104  corresponds with the number of dimensions of the n-dimensional space  102  where the correlithm object  102  is located. For example, each correlithm object  104  may be uniquely identified using a 64-bit string in a 64-dimensional space  102 . As another example, each correlithm object  104  may be uniquely identified using a 10-bit string in a 10-dimensional space  102 . In other examples, correlithm objects  104  can be identified using any other suitable number of bits in a string that corresponds with the number of dimensions in the n-dimensional space  102 . 
     In this configuration, the distance  106  between two correlithm objects  104  can be determined based on the differences between the bits of the two correlithm objects  104 . In other words, the distance  106  between two correlithm objects can be determined based on how many individual bits differ between the correlithm objects  104 . The distance  106  between two correlithm objects  104  can be computed using Hamming distance, anti-Hamming distance or any other suitable technique. 
     As an example, using a 10-dimensional space  102 , a first correlithm object  104  is represented by a first 10-bit string (1001011011) and a second correlithm object  104  is represented by a second 10-bit string (1000011011). The Hamming distance corresponds with the number of bits that differ between the first correlithm object  104  and the second correlithm object  104 . Conversely, the anti-Hamming distance corresponds with the number of bits that are alike between the first correlithm object  104  and the second correlithm object  104 . Thus, the Hamming distance between the first correlithm object  104  and the second correlithm object  104  can be computed as follows: 
     
       
         
           
             
               
                 
                   1001011011 
                 
               
               
                 
                   1000011011 
                 
               
             
             0001000000 
           
         
       
     
     In this example, the Hamming distance is equal to one because only one bit differs between the first correlithm object  104  and the second correlithm object. Conversely, the anti-Hamming distance is nine because nine bits are the same between the first and second correlithm objects  104 . As another example, a third correlithm object  104  is represented by a third 10-bit string (0110100100). In this example, the Hamming distance between the first correlithm object  104  and the third correlithm object  104  can be computed as follows: 
     
       
         
           
             
               
                 
                   1001011011 
                 
               
               
                 
                   0110100100 
                 
               
             
             1111111111 
           
         
       
     
     The Hamming distance is equal to ten because all of the bits are different between the first correlithm object  104  and the third correlithm object  104 . Conversely, the anti-Hamming distance is zero because none of the bits are the same between the first and third correlithm objects  104 . In the previous example, a Hamming distance equal to one indicates that the first correlithm object  104  and the second correlithm object  104  are close to each other in the n-dimensional space  102 , which means they are similar to each other. Similarly, an anti-Hamming distance equal to nine also indicates that the first and second correlithm objects are close to each other in n-dimensional space  102 , which also means they are similar to each other. In the second example, a Hamming distance equal to ten indicates that the first correlithm object  104  and the third correlithm object  104  are further from each other in the n-dimensional space  102  and are less similar to each other than the first correlithm object  104  and the second correlithm object  104 . Similarly, an anti-Hamming distance equal to zero also indicates that that the first and third correlithm objects  104  are further from each other in n-dimensional space  102  and are less similar to each other than the first and second correlithm objects  104 . In other words, the similarity between a pair of correlithm objects can be readily determined based on the distance between the pair correlithm objects, as represented by either Hamming distances or anti-Hamming distances. 
     As another example, the distance between a pair of correlithm objects  104  can be determined by performing an XOR operation between the pair of correlithm objects  104  and counting the number of logical high values in the binary string. The number of logical high values indicates the number of bits that are different between the pair of correlithm objects  104  which also corresponds with the Hamming distance between the pair of correlithm objects  104 . 
     In another embodiment, the distance  106  between two correlithm objects  104  can be determined using a Minkowski distance such as the Euclidean or “straight-line” distance between the correlithm objects  104 . For example, the distance  106  between a pair of correlithm objects  104  may be determined by calculating the square root of the sum of squares of the coordinate difference in each dimension. 
     The user device  100  is configured to implement or emulate a correlithm object processing system that comprises one or more sensors  302 , nodes  304 , and/or actors  306  in order to convert data samples between real-world values or representations and to correlithm objects  104  in a correlithm object domain. Sensors  302  are generally configured to convert real-world data samples to the correlithm object domain. Nodes  304  are generally configured to process or perform various operations on correlithm objects in the correlithm object domain. Actors  306  are generally configured to convert correlithm objects  104  into real-world values or representations. Additional information about sensors  302 , nodes  304 , and actors  306  is described in  FIG.  3   . 
     Performing operations using correlithm objects  104  in a correlithm object domain allows the user device  100  to identify relationships between data samples that cannot be identified using conventional data processing systems. For example, in the correlithm object domain, the user device  100  is able to identify not only data samples that exactly match an input data sample, but also other data samples that have similar characteristics or features as the input data samples. Conventional computers are unable to identify these types of relationships readily. Using correlithm objects  104  improves the operation of the user device  100  by enabling the user device  100  to efficiently process data samples and identify relationships between data samples without relying on signal processing techniques that require a significant amount of processing resources. These benefits allow the user device  100  to operate more efficiently than conventional computers by reducing the amount of processing power and resources that are needed to perform various operations. 
       FIG.  2    is a schematic view of an embodiment of a mapping between correlithm objects  104  in different n-dimensional spaces  102 . When implementing a correlithm object processing system, the user device  100  performs operations within the correlithm object domain using correlithm objects  104  in different n-dimensional spaces  102 . As an example, the user device  100  may convert different types of data samples having real-world values into correlithm objects  104  in different n-dimensional spaces  102 . For instance, the user device  100  may convert data samples of text into a first set of correlithm objects  104  in a first n-dimensional space  102  and data samples of audio samples as a second set of correlithm objects  104  in a second n-dimensional space  102 . Conventional systems require data samples to be of the same type and/or format to perform any kind of operation on the data samples. In some instances, some types of data samples cannot be compared because there is no common format available. For example, conventional computers are unable to compare data samples of images and data samples of audio samples because there is no common format. In contrast, the user device  100  implementing a correlithm object processing system is able to compare and perform operations using correlithm objects  104  in the correlithm object domain regardless of the type or format of the original data samples. 
     In  FIG.  2   , a first set of correlithm objects  104 A are defined within a first n-dimensional space  102 A and a second set of correlithm objects  104 B are defined within a second n-dimensional space  102 B. The n-dimensional spaces may have the same number of dimensions or a different number of dimensions. For example, the first n-dimensional space  102 A and the second n-dimensional space  102 B may both be three dimensional spaces. As another example, the first n-dimensional space  102 A may be a three-dimensional space and the second n-dimensional space  102 B may be a nine-dimensional space. Correlithm objects  104  in the first n-dimensional space  102 A and second n-dimensional space  102 B are mapped to each other. In other words, a correlithm object  104 A in the first n-dimensional space  102 A may reference or be linked with a particular correlithm object  104 B in the second n-dimensional space  102 B. The correlithm objects  104  may also be linked with and referenced with other correlithm objects  104  in other n-dimensional spaces  102 . 
     In one embodiment, a data structure such as table  200  may be used to map or link correlithm objects  104  in different n-dimensional spaces  102 . In some instances, table  200  is referred to as a node table. Table  200  is generally configured to identify a first plurality of correlithm objects  104  in a first n-dimensional space  102  and a second plurality of correlithm objects  104  in a second n-dimensional space  102 . Each correlithm object  104  in the first n-dimensional space  102  is linked with a correlithm object  104  is the second n-dimensional space  102 . For example, table  200  may be configured with a first column  202  that lists correlithm objects  104 A as source correlithm objects and a second column  204  that lists corresponding correlithm objects  104 B as target correlithm objects. In other examples, table  200  may be configured in any other suitable manner or may be implemented using any other suitable data structure. In some embodiments, one or more mapping functions may be used to convert between a correlithm object  104  in a first n-dimensional space and a correlithm object  104  is a second n-dimensional space. 
       FIG.  3    is a schematic view of an embodiment of a correlithm object processing system  300  that is implemented by a user device  100  to perform operations using correlithm objects  104 . The system  300  generally comprises a sensor  302 , a node  304 , and an actor  306 . The system  300  may be configured with any suitable number and/or configuration of sensors  302 , nodes  304 , and actors  306 . An example of the system  300  in operation is described in  FIG.  4   . In one embodiment, a sensor  302 , a node  304 , and an actor  306  may all be implemented on the same device (e.g. user device  100 ). In other embodiments, a sensor  302 , a node  304 , and an actor  306  may each be implemented on different devices in signal communication with each other for example over a network. In other embodiments, different devices may be configured to implement any combination of sensors  302 , nodes  304 , and actors  306 . 
     Sensors  302  serve as interfaces that allow a user device  100  to convert real-world data samples into correlithm objects  104  that can be used in the correlithm object domain. Sensors  302  enable the user device  100  to compare and perform operations using correlithm objects  104  regardless of the data type or format of the original data sample. Sensors  302  are configured to receive a real-world value  320  representing a data sample as an input, to determine a correlithm object  104  based on the real-world value  320 , and to output the correlithm object  104 . For example, the sensor  302  may receive an image  301  of a person and output a correlithm object  322  to the node  304  or actor  306 . In one embodiment, sensors  302  are configured to use sensor tables  308  that link a plurality of real-world values with a plurality of correlithm objects  104  in an n-dimensional space  102 . Real-world values are any type of signal, value, or representation of data samples. Examples of real-world values include, but are not limited to, images, pixel values, text, audio signals, electrical signals, and biometric signals. As an example, a sensor table  308  may be configured with a first column  312  that lists real-world value entries corresponding with different images and a second column  314  that lists corresponding correlithm objects  104  as input correlithm objects. In other examples, sensor tables  308  may be configured in any other suitable manner or may be implemented using any other suitable data structure. In some embodiments, one or more mapping functions may be used to translate between a real-world value  320  and a correlithm object  104  in an n-dimensional space. Additional information for implementing or emulating a sensor  302  in hardware is described in  FIG.  5   . 
     Nodes  304  are configured to receive a correlithm object  104  (e.g. an input correlithm object  104 ), to determine another correlithm object  104  based on the received correlithm object  104 , and to output the identified correlithm object  104  (e.g. an output correlithm object  104 ). In one embodiment, nodes  304  are configured to use node tables  200  that link a plurality of correlithm objects  104  from a first n-dimensional space  102  with a plurality of correlithm objects  104  in a second n-dimensional space  102 . A node table  200  may be configured similar to the table  200  described in  FIG.  2   . Additional information for implementing or emulating a node  304  in hardware is described in  FIG.  5   . 
     Actors  306  serve as interfaces that allow a user device  100  to convert correlithm objects  104  in the correlithm object domain back to real-world values or data samples. Actors  306  enable the user device  100  to convert from correlithm objects  104  into any suitable type of real-world value. Actors  306  are configured to receive a correlithm object  104  (e.g. an output correlithm object  104 ), to determine a real-world output value  326  based on the received correlithm object  104 , and to output the real-world output value  326 . The real-world output value  326  may be a different data type or representation of the original data sample. As an example, the real-world input value  320  may be an image  301  of a person and the resulting real-world output value  326  may be text  327  and/or an audio signal identifying the person. In one embodiment, actors  306  are configured to use actor tables  310  that link a plurality of correlithm objects  104  in an n-dimensional space  102  with a plurality of real-world values. As an example, an actor table  310  may be configured with a first column  316  that lists correlithm objects  104  as output correlithm objects and a second column  318  that lists real-world values. In other examples, actor tables  310  may be configured in any other suitable manner or may be implemented using any other suitable data structure. In some embodiments, one or more mapping functions may be employed to translate between a correlithm object  104  in an n-dimensional space and a real-world output value  326 . Additional information for implementing or emulating an actor  306  in hardware is described in  FIG.  5   . 
     A correlithm object processing system  300  uses a combination of a sensor table  308 , a node table  200 , and/or an actor table  310  to provide a specific set of rules that improve computer-related technologies by enabling devices to compare and to determine the degree of similarity between different data samples regardless of the data type and/or format of the data sample they represent. The ability to directly compare data samples having different data types and/or formatting is a new functionality that cannot be performed using conventional computing systems and data structures. Conventional systems require data samples to be of the same type and/or format in order to perform any kind of operation on the data samples. In some instances, some types of data samples are incompatible with each other and cannot be compared because there is no common format available. For example, conventional computers are unable to compare data samples of images with data samples of audio samples because there is no common format available. In contrast, a device implementing a correlithm object processing system uses a combination of a sensor table  308 , a node table  200 , and/or an actor table  310  to compare and perform operations using correlithm objects  104  in the correlithm object domain regardless of the type or format of the original data samples. The correlithm object processing system  300  uses a combination of a sensor table  308 , a node table  200 , and/or an actor table  310  as a specific set of rules that provides a particular solution to dealing with different types of data samples and allows devices to perform operations on different types of data samples using correlithm objects  104  in the correlithm object domain. In some instances, comparing data samples as correlithm objects  104  is computationally more efficient and faster than comparing data samples in their original format. Thus, using correlithm objects  104  to represent data samples provides increased flexibility and improved performance compared to using other conventional data structures. The specific set of rules used by the correlithm object processing system  300  go beyond simply using routine and conventional activities in order to achieve this new functionality and performance improvements. 
     In addition, correlithm object processing system  300  uses a combination of a sensor table  308 , a node table  200 , and/or an actor table  310  to provide a particular manner for transforming data samples between ordinal number representations and correlithm objects  104  in a correlithm object domain. For example, the correlithm object processing system  300  may be configured to transform a representation of a data sample into a correlithm object  104 , to perform various operations using the correlithm object  104  in the correlithm object domain, and to transform a resulting correlithm object  104  into another representation of a data sample. Transforming data samples between ordinal number representations and correlithm objects  104  involves fundamentally changing the data type of data samples between an ordinal number system and a categorical number system to achieve the previously described benefits of the correlithm object processing system  300 . 
       FIG.  4    is a protocol diagram of an embodiment of a correlithm object process flow  400 . A user device  100  implements process flow  400  to emulate a correlithm object processing system  300  to perform operations using correlithm object  104  such as facial recognition. The user device  100  implements process flow  400  to compare different data samples (e.g. images, voice signals, or text) to each other and to identify other objects based on the comparison. Process flow  400  provides instructions that allows user devices  100  to achieve the improved technical benefits of a correlithm object processing system  300 . 
     Conventional systems are configured to use ordinal numbers for identifying different data samples. Ordinal based number systems only provide information about the sequence order of numbers based on their numeric values, and do not provide any information about any other types of relationships for the data samples being represented by the numeric values such as similarity. In contrast, a user device  100  can implement or emulate the correlithm object processing system  300  which provides an unconventional solution that uses categorical numbers and correlithm objects  104  to represent data samples. For example, the system  300  may be configured to use binary integers as categorical numbers to generate correlithm objects  104  which enables the user device  100  to perform operations directly based on similarities between different data samples. Categorical numbers provide information about how similar different data sample are from each other. Correlithm objects  104  generated using categorical numbers can be used directly by the system  300  for determining how similar different data samples are from each other without relying on exact matches, having a common data type or format, or conventional signal processing techniques. 
     A non-limiting example is provided to illustrate how the user device  100  implements process flow  400  to emulate a correlithm object processing system  300  to perform facial recognition on an image to determine the identity of the person in the image. In other examples, the user device  100  may implement process flow  400  to emulate a correlithm object processing system  300  to perform voice recognition, text recognition, or any other operation that compares different objects. 
     At step  402 , a sensor  302  receives an input signal representing a data sample. For example, the sensor  302  receives an image of person&#39;s face as a real-world input value  320 . The input signal may be in any suitable data type or format. In one embodiment, the sensor  302  may obtain the input signal in real-time from a peripheral device (e.g. a camera). In another embodiment, the sensor  302  may obtain the input signal from a memory or database. 
     At step  404 , the sensor  302  identifies a real-world value entry in a sensor table  308  based on the input signal. In one embodiment, the system  300  identifies a real-world value entry in the sensor table  308  that matches the input signal. For example, the real-world value entries may comprise previously stored images. The sensor  302  may compare the received image to the previously stored images to identify a real-world value entry that matches the received image. In one embodiment, when the sensor  302  does not find an exact match, the sensor  302  finds a real-world value entry that closest matches the received image. 
     At step  406 , the sensor  302  identifies and fetches an input correlithm object  104  in the sensor table  308  linked with the real-world value entry. At step  408 , the sensor  302  sends the identified input correlithm object  104  to the node  304 . In one embodiment, the identified input correlithm object  104  is represented in the sensor table  308  using a categorical binary integer string. The sensor  302  sends the binary string representing to the identified input correlithm object  104  to the node  304 . 
     At step  410 , the node  304  receives the input correlithm object  104  and determines distances  106  between the input correlithm object  104  and each source correlithm object  104  in a node table  200 . In one embodiment, the distance  106  between two correlithm objects  104  can be determined based on the differences between the bits of the two correlithm objects  104 . In other words, the distance  106  between two correlithm objects can be determined based on how many individual bits differ between a pair of correlithm objects  104 . The distance  106  between two correlithm objects  104  can be computed using Hamming distance or any other suitable technique. In another embodiment, the distance  106  between two correlithm objects  104  can be determined using a Minkowski distance such as the Euclidean or “straight-line” distance between the correlithm objects  104 . For example, the distance  106  between a pair of correlithm objects  104  may be determined by calculating the square root of the sum of squares of the coordinate difference in each dimension. 
     At step  412 , the node  304  identifies a source correlithm object  104  from the node table  200  with the shortest distance  106 . A source correlithm object  104  with the shortest distance from the input correlithm object  104  is a correlithm object  104  either matches or most closely matches the received input correlithm object  104 . 
     At step  414 , the node  304  identifies and fetches a target correlithm object  104  in the node table  200  linked with the source correlithm object  104 . At step  416 , the node  304  outputs the identified target correlithm object  104  to the actor  306 . In this example, the identified target correlithm object  104  is represented in the node table  200  using a categorical binary integer string. The node  304  sends the binary string representing to the identified target correlithm object  104  to the actor  306 . 
     At step  418 , the actor  306  receives the target correlithm object  104  and determines distances between the target correlithm object  104  and each output correlithm object  104  in an actor table  310 . The actor  306  may compute the distances between the target correlithm object  104  and each output correlithm object  104  in an actor table  310  using a process similar to the process described in step  410 . 
     At step  420 , the actor  306  identifies an output correlithm object  104  from the actor table  310  with the shortest distance  106 . An output correlithm object  104  with the shortest distance from the target correlithm object  104  is a correlithm object  104  either matches or most closely matches the received target correlithm object  104 . 
     At step  422 , the actor  306  identifies and fetches a real-world output value in the actor table  310  linked with the output correlithm object  104 . The real-world output value may be any suitable type of data sample that corresponds with the original input signal. For example, the real-world output value may be text that indicates the name of the person in the image or some other identifier associated with the person in the image. As another example, the real-world output value may be an audio signal or sample of the name of the person in the image. In other examples, the real-world output value may be any other suitable real-world signal or value that corresponds with the original input signal. The real-world output value may be in any suitable data type or format. 
     At step  424 , the actor  306  outputs the identified real-world output value. In one embodiment, the actor  306  may output the real-world output value in real-time to a peripheral device (e.g. a display or a speaker). In one embodiment, the actor  306  may output the real-world output value to a memory or database. In one embodiment, the real-world output value is sent to another sensor  302 . For example, the real-world output value may be sent to another sensor  302  as an input for another process. 
       FIG.  5    is a schematic diagram of an embodiment of a computer architecture  500  for emulating a correlithm object processing system  300  in a user device  100 . The computer architecture  500  comprises a processor  502 , a memory  504 , a network interface  506 , and an input-output (I/O) interface  508 . The computer architecture  500  may be configured as shown or in any other suitable configuration. 
     The processor  502  comprises one or more processors operably coupled to the memory  504 . The processor  502  is any electronic circuitry including, but not limited to, state machines, one or more central processing unit (CPU) chips, logic units, cores (e.g. a multi-core processor), field-programmable gate array (FPGAs), application specific integrated circuits (ASICs), graphics processing units (GPUs), or digital signal processors (DSPs). The processor  502  may be a programmable logic device, a microcontroller, a microprocessor, or any suitable combination of the preceding. The processor  502  is communicatively coupled to and in signal communication with the memory  204 . The one or more processors are configured to process data and may be implemented in hardware or software. For example, the processor  502  may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. The processor  502  may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. 
     The one or more processors  502  are configured to implement various instructions. For example, the one or more processors  502  are configured to execute instructions to implement sensor engines  510 , node engines  512 , actor engines  514 , string correlithm object engine  522 , and arithmetic engine  524 . In an embodiment, sensor engines  510 , node engines  512 , actor engines  514 , string correlithm object engine  522 , and arithmetic engine  524  are implemented using logic units, FPGAs, ASICs, DSPs, or any other suitable hardware. The sensor engines  510 , node engines  512 , actor engines  514 , string correlithm object engine  522 , and arithmetic engine  524  are each configured to implement a specific set of rules or processes that provides an improved technological result. 
     In one embodiment, sensor engine  510  is configured implement sensors  302  that receive a real-world value  320  as an input, determine a correlithm object  104  based on the real-world value  320 , and output correlithm object  104 . An example operation of a sensor  302  implemented by a sensor engine  510  is described in  FIG.  4   . 
     In one embodiment, node engine  512  is configured to implement nodes  304  that receive a correlithm object  104  (e.g. an input correlithm object  104 ), determine another correlithm object  104  based on the received correlithm object  104 , and output the identified correlithm object  104  (e.g. an output correlithm object  104 ). A node  304  implemented by a node engine  512  is also configured to compute n-dimensional distances between pairs of correlithm objects  104 . An example operation of a node  304  implemented by a node engine  512  is described in  FIG.  4   . 
     In one embodiment, actor engine  514  is configured to implement actors  306  that receive a correlithm object  104  (e.g. an output correlithm object  104 ), determine a real-world output value  326  based on the received correlithm object  104 , and output the real-world output value  326 . An example operation of an actor  306  implemented by an actor engine  514  is described in  FIG.  4   . 
     In one embodiment, string correlithm object engine  522  is configured to implement a string correlithm object generator  1200  and otherwise process string correlithm objects  602  as described, for example, in conjunction with  FIGS.  12 - 28   . In one embodiment, arithmetic engine  524  perform arithmetic operations (e.g., addition, subtraction, multiplication, division, and inversion) as described, for example, in conjunction with  FIGS.  24 - 28   . 
     The memory  504  comprises one or more non-transitory disks, tape drives, or solid-state drives, and may be used as an over-flow data storage device, to store programs when such programs are selected for execution, and to store instructions and data that are read during program execution. The memory  504  may be volatile or non-volatile and may comprise read-only memory (ROM), random-access memory (RAM), ternary content-addressable memory (TCAM), dynamic random-access memory (DRAM), and static random-access memory (SRAM). The memory  504  is operable to store sensor instructions  516 , node instructions  518 , actor instructions  520 , arithmetic instructions  526 , sensor tables  308 , node tables  200 , actor tables  310 , string correlithm object tables  1220 ,  1400 ,  1500 ,  1520 ,  1600 , and  1820 , and/or any other data or instructions. The sensor instructions  516 , node instructions  518 , actor instructions  520 , and arithmetic instructions  526  comprise any suitable set of instructions, logic, rules, or code operable to execute sensor engine  510 , node engine  512 , actor engine  514 , and arithmetic engine  524  respectively. 
     The sensor tables  308 , node tables  200 , and actor tables  310  may be configured similar to sensor tables  308 , node tables  200 , and actor tables  310  described in  FIG.  3   , respectively. 
     The network interface  506  is configured to enable wired and/or wireless communications. The network interface  506  is configured to communicate data with any other device or system. For example, the network interface  506  may be configured for communication with a modem, a switch, a router, a bridge, a server, or a client. The processor  502  is configured to send and receive data using the network interface  506 . 
     The I/O interface  508  may comprise ports, transmitters, receivers, transceivers, or any other devices for transmitting and/or receiving data with peripheral devices as would be appreciated by one of ordinary skill in the art upon viewing this disclosure. For example, the I/O interface  508  may be configured to communicate data between the processor  502  and peripheral hardware such as a graphical user interface, a display, a mouse, a keyboard, a key pad, and a touch sensor (e.g. a touch screen). 
       FIGS.  6  and  7    are schematic diagrams of an embodiment of a device  100  implementing string correlithm objects  602  for a correlithm object processing system  300 . String correlithm objects  602  can be used by a correlithm object processing system  300  to embed higher orders of correlithm objects  104  within lower orders of correlithm objects  104 . The order of a correlithm object  104  depends on the number of bits used to represent the correlithm object  104 . The order of a correlithm object  104  also corresponds with the number of dimensions in the n-dimensional space  102  where the correlithm object  104  is located. For example, a correlithm object  104  represented by a 64-bit string is a higher order correlithm object  104  than a correlithm object  104  represented by 16-bit string. 
     Conventional computing systems rely on accurate data input and are unable to detect or correct for data input errors in real time. For example, a conventional computing device assumes a data stream is correct even when the data stream has bit errors. When a bit error occurs that leads to an unknown data value, the conventional computing device is unable to resolve the error without manual intervention. In contrast, string correlithm objects  602  enable a device  100  to perform operations such as error correction and interpolation within the correlithm object processing system  300 . For example, higher order correlithm objects  104  can be used to associate an input correlithm object  104  with a lower order correlithm  104  when an input correlithm object does not correspond with a particular correlithm object  104  in an n-dimensional space  102 . The correlithm object processing system  300  uses the embedded higher order correlithm objects  104  to define correlithm objects  104  between the lower order correlithm objects  104  which allows the device  100  to identify a correlithm object  104  in the lower order correlithm objects n-dimensional space  102  that corresponds with the input correlithm object  104 . Using string correlithm objects  602 , the correlithm object processing system  300  is able to interpolate and/or to compensate for errors (e.g. bit errors) which improve the functionality of the correlithm object processing system  300  and the operation of the device  100 . 
     In some instances, string correlithm objects  602  may be used to represent a series of data samples or temporal data samples. For example, a string correlithm object  602  may be used to represent audio or video segments. In this example, media segments are represented by sequential correlithm objects that are linked together using a string correlithm object  602 . 
       FIG.  6    illustrates an embodiment of how a string correlithm object  602  may be implemented within a node  304  by a device  100 . In other embodiments, string correlithm objects  602  may be integrated within a sensor  302  or an actor  306 . In 32-dimensional space  102  where correlithm objects  104  can be represented by a 32-bit string, the 32-bit string can be embedded and used to represent correlithm objects  104  in a lower order 3-dimensional space  102  which uses three bits. The 32-bit strings can be partitioned into three 12-bit portions, where each portion corresponds with one of the three bits in the 3-dimensional space  102 . For example, the correlithm object  104  represented by the 3-bit binary value of  000  may be represented by a 32-bit binary string of zeros and the correlithm object represented by the binary value of 111 may be represented by a 32-bit string of all ones. As another example, the correlithm object  104  represented by the 3-bit binary value of  100  may be represented by a 32-bit binary string with 12 bits set to one followed by 24 bits set to zero. In other examples, string correlithm objects  602  can be used to embed any other combination and/or number of n-dimensional spaces  102 . 
     In one embodiment, when a higher order n-dimensional space  102  is embedded in a lower order n-dimensional space  102 , one or more correlithm objects  104  are present in both the lower order n-dimensional space  102  and the higher order n-dimensional space  102 . Correlithm objects  104  that are present in both the lower order n-dimensional space  102  and the higher order n-dimensional space  102  may be referred to as parent correlithm objects  603 . Correlithm objects  104  in the higher order n-dimensional space  102  may be referred to as child correlithm objects  604 . In this example, the correlithm objects  104  in the 3-dimensional space  102  may be referred to as parent correlithm objects  603  while the correlithm objects  104  in the 32-dimensional space  102  may be referred to as child correlithm objects  604 . In general, child correlithm objects  604  are represented by a higher order binary string than parent correlithm objects  603 . In other words, the bit strings used to represent a child correlithm object  604  may have more bits than the bit strings used to represent a parent correlithm object  603 . The distance between parent correlithm objects  603  may be referred to as a standard distance. The distance between child correlithm objects  604  and other child correlithm objects  604  or parent correlithm objects  603  may be referred to as a fractional distance which is less than the standard distance. 
       FIG.  7    illustrates another embodiment of how a string correlithm object  602  may be implemented within a node  304  by a device  100 . In other embodiments, string correlithm objects  602  may be integrated within a sensor  302  or an actor  306 . In  FIG.  7   , a set of correlithm objects  104  are shown within an n-dimensional space  102 . In one embodiment, the correlithm objects  104  are equally spaced from adjacent correlithm objects  104 . A string correlithm object  602  comprises a parent correlithm object  603  linked with one or more child correlithm objects  604 .  FIG.  7    illustrates three string correlithm objects  602  where each string correlithm object  602  comprises a parent correlithm object  603  linked with six child correlithm objects  603 . In other examples, the n-dimensional space  102  may comprise any suitable number of correlithm objects  104  and/or string correlithm objects  602 . 
     A parent correlithm object  603  may be a member of one or more string correlithm objects  602 . For example, a parent correlithm object  603  may be linked with one or more sets of child correlithm objects  604  in a node table  200 . In one embodiment, a child correlithm object  604  may only be linked with one parent correlithm object  603 . String correlithm objects  602  may be configured to form a daisy chain or a linear chain of child correlithm objects  604 . In one embodiment, string correlithm objects  602  are configured such that child correlithm objects  604  do not form loops where the chain of child correlithm objects  604  intersect with themselves. Each child correlithm objects  604  is less than the standard distance away from its parent correlithm object  603 . The child correlithm objects  604  are equally spaced from other adjacent child correlithm objects  604 . 
     In one embodiment, a data structure such as node table  200  may be used to map or link parent correlithm objects  603  with child correlithm objects  604 . The node table  200  is generally configured to identify a plurality of parent correlithm objects  603  and one or more child correlithm objects  604  linked with each of the parent correlithm objects  603 . For example, node table  200  may be configured with a first column that lists child correlithm objects  604  and a second column that lists parent correlithm objects  603 . In other examples, the node table  200  may be configured in any other suitable manner or may be implemented using any other suitable data structure. In some embodiments, one or more mapping functions may be used to convert between a child correlithm object  604  and a parent correlithm object  603 . 
       FIG.  8    is a schematic diagram of another embodiment of a device  100  implementing string correlithm objects  602  in a node  304  for a correlithm object processing system  300 . Previously in  FIG.  7   , a string correlithm object  602  comprised of child correlithm objects  604  that are adjacent to a parent correlithm object  603 . In  FIG.  8   , string correlithm objects  602  comprise one or more child correlithm objects  604  in between a pair of parent correlithm objects  603 . In this configuration, the string correlithm object  602  initially diverges from a first parent correlithm object  603 A and then later converges toward a second parent correlithm object  603 B. This configuration allows the correlithm object processing system  300  to generate a string correlithm object  602  between a particular pair of parent correlithm objects  603 . 
     The string correlithm objects described in  FIG.  8    allow the device  100  to interpolate value between a specific pair of correlithm objects  104  (i.e. parent correlithm objects  603 ). In other words, these types of string correlithm objects  602  allow the device  100  to perform interpolation between a set of parent correlithm objects  603 . Interpolation between a set of parent correlithm objects  603  enables the device  100  to perform operations such as quantization which convert between different orders of correlithm objects  104 . 
     In one embodiment, a data structure such as node table  200  may be used to map or link the parent correlithm objects  603  with their respective child correlithm objects  604 . For example, node table  200  may be configured with a first column that lists child correlithm objects  604  and a second column that lists parent correlithm objects  603 . In this example, a first portion of the child correlithm objects  604  is linked with the first parent correlithm object  603 A and a second portion of the child correlithm objects  604  is linked with the second parent correlithm object  603 B. In other examples, the node table  200  may be configured in any other suitable manner or may be implemented using any other suitable data structure. In some embodiments, one or more mapping functions may be used to convert between a child correlithm object  604  and a parent correlithm object  603 . 
       FIG.  9    is an embodiment of a graph of a probability distribution  900  for matching a random correlithm object  104  with a particular correlithm object  104 . Axis  902  indicates the number of bits that are different between a random correlithm object  104  with a particular correlithm object  104 . Axis  904  indicates the probability associated with a particular number of bits being different between a random correlithm object  104  and a particular correlithm object  104 . 
     As an example,  FIG.  9    illustrates the probability distribution  900  for matching correlithm objects  104  in a 64-dimensional space  102 . In one embodiment, the probability distribution  900  is approximately a Gaussian distribution. As the number of dimensions in the n-dimensional space  102  increases, the probability distribution  900  starts to shape more like an impulse response function. In other examples, the probability distribution  900  may follow any other suitable type of distribution. 
     Location  906  illustrates an exact match between a random correlithm object  104  with a particular correlithm object  104 . As shown by the probability distribution  900 , the probability of an exact match between a random correlithm object  104  with a particular correlithm object  104  is extremely low. In other words, when an exact match occurs the event is most likely deliberate and not a random occurrence. 
     Location  908  illustrates when all of the bits between the random correlithm object  104  with the particular correlithm object  104  are different. In this example, the random correlithm object  104  and the particular correlithm object  104  have 64 bits that are different from each other. As shown by the probability distribution  900 , the probability of all the bits being different between the random correlithm object  104  and the particular correlithm object  104  is also extremely low. 
     Location  910  illustrates an average number of bits that are different between a random correlithm object  104  and the particular correlithm object  104 . In general, the average number of different bits between the random correlithm object  104  and the particular correlithm object  104  is equal to 
             n   2         
(also referred to as standard distance), where ‘n’ is the number of dimensions in the n-dimensional space  102 . In this example, the average number of bits that are different between a random correlithm object  104  and the particular correlithm object  104  is 32 bits.
 
     Location  912  illustrates a cutoff region that defines a core distance for a correlithm object core. The correlithm object  104  at location  906  may also be referred to as a root correlithm object for a correlithm object core. The core distance defines the maximum number of bits that can be different between a correlithm object  104  and the root correlithm object to be considered within a correlithm object core for the root correlithm object. In other words, the core distance defines the maximum number of hops away a correlithm object  104  can be from a root correlithm object to be considered a part of the correlithm object core for the root correlithm object. Additional information about a correlithm object core is described in  FIG.  10   . In this example, the cutoff region defines a core distance equal to six standard deviations away from the average number of bits that are different between a random correlithm object  104  and the particular correlithm object  104 . In general, the standard deviation is equal to 
                 n   4       ,         
where ‘n’ is the number of dimensions in the n-dimensional space  102 . In this example, the standard deviation of the 64-dimensional space  102  is equal to 4 bits. This means the cutoff region (location  912 ) is located 24 bits away from location  910  which is 8 bits away from the root correlithm object at location  906 . In other words, the core distance is equal to 8 bits. This means that the cutoff region at location  912  indicates that the core distance for a correlithm object core includes correlithm objects  104  that have up to 8 bits different then the root correlithm object or are up to 8 hops away from the root correlithm object. In other examples, the cutoff region that defines the core distance may be equal any other suitable value. For instance, the cutoff region may be set to 2, 4, 8, 10, 12, or any other suitable number of standard deviations away from location  910 .
 
       FIG.  10    is a schematic diagram of an embodiment of a device  100  implementing a correlithm object core  1002  in a node  304  for a correlithm object processing system  300 . In other embodiments, correlithm object cores  1002  may be integrated with a sensor  302  or an actor  306 . Correlithm object cores  1002  can be used by a correlithm object processing system  300  to classify or group correlithm objects  104  and/or the data samples they represent. For example, a set of correlithm objects  104  can be grouped together by linking them with a correlithm object core  1402 . The correlithm object core  1002  identifies the class or type associated with the set of correlithm objects  104 . 
     In one embodiment, a correlithm object core  1002  comprises a root correlithm object  1004  that is linked with a set of correlithm objects  104 . The set of correlithm objects  104  that are linked with the root correlithm object  1004  are the correlithm objects  104  which are located within the core distance of the root correlithm object  1004 . The set of correlithm objects  104  are linked with only one root correlithm object  1004 . The core distance can be computed using a process similar to the process described in  FIG.  9   . For example, in a 64-dimensional space  102  with a core distance defined at six sigma (i.e. six standard deviations), the core distance is equal to 8-bits. This means that correlithm objects  104  within up to eight hops away from the root correlithm object  1004  are members of the correlithm object core  1002  for the root correlithm object  1004 . 
     In one embodiment, a data structure such as node table  200  may be used to map or link root correlithm objects  1004  with sets of correlithm objects  104 . The node table  200  is generally configured to identify a plurality of root correlithm objects  1004  and correlithm objects  104  linked with the root correlithm objects  1004 . For example, node table  200  may be configured with a first column that lists correlithm object cores  1002 , a second column that lists root correlithm objects  1004 , and a third column that lists correlithm objects  104 . In other examples, the node table  200  may be configured in any other suitable manner or may be implemented using any other suitable data structure. In some embodiments, one or more mapping functions may be used to convert between correlithm objects  104  and a root correlithm object  1004 . 
       FIG.  11    is an embodiment of a graph of probability distributions  1100  for adjacent root correlithm objects  1004 . Axis  1102  indicates the distance between the root correlithm objects  1004 , for example, in units of bits. Axis  1104  indicates the probability associated with the number of bits being different between a random correlithm object  104  and a root correlithm object  1004 . 
     As an example,  FIG.  11    illustrates the probability distributions for adjacent root correlithm objects  1004  in a  1024 -dimensional space  102 . Location  1106  illustrates the location of a first root correlithm object  1004  with respect to a second root correlithm object  1004 . Location  1108  illustrates the location of the second root correlithm object  1004 . Each root correlithm object  1004  is located an average distance away from each other which is equal to 
               n   2     ,         
where ‘n’ is the number of dimensions in the n-dimensional space  102 . In this example, the first root correlithm object  1004  and the second root correlithm object  1004  are 512 bits or 32 standard deviations away from each other.
 
     In this example, the cutoff region for each root correlithm object  1004  is located at six standard deviations from locations  1106  and  1108 . In other examples, the cutoff region may be located at any other suitable location. For example, the cutoff region defining the core distance may one, two, four, ten, or any other suitable number of standard deviations away from the average distance between correlithm objects  104  in the n-dimensional space  102 . Location  1110  illustrates a first cutoff region that defines a first core distance  1114  for the first root correlithm object  1004 . Location  1112  illustrates a second cutoff region that defines a second core distance  1116  for the second root correlithm object  1004 . 
     In this example, the core distances for the first root correlithm object  1004  and the second root correlithm object  1004  do not overlap with each other. This means that correlithm objects  104  within the correlithm object core  1002  of one of the root correlithm objects  1004  are uniquely associated with the root correlithm object  1004  and there is no ambiguity. 
       FIG.  12 A  illustrates one embodiment of a string correlithm object generator  1200  configured to generate a string correlithm object  602  as output. String correlithm object generator  1200  is implemented by string correlithm object engine  522  and comprises a first processing stage  1202   a  communicatively and logically coupled to a second processing stage  1202   b . First processing stage  1202  receives an input  1204  and outputs a first sub-string correlithm object  1206   a  that comprises an n-bit digital word wherein each bit has either a value of zero or one. In one embodiment, first processing stage  1202  generates the values of each bit randomly. Input  1204  comprises one or more parameters used to determine the characteristics of the string correlithm object  602 . For example, input  1204  may include a parameter for the number of dimensions, n, in the n-dimensional space  102  (e.g., 64, 128, 256, etc.) in which to generate the string correlithm object  602 . Input  1204  may also include a distance parameter, δ, that indicates a particular number of bits of the n-bit digital word (e.g., 4, 8, 16, etc.) that will be changed from one sub-string correlithm object  1206  to the next in the string correlithm object  602 . Second processing stage  1202   b  receives the first sub-string correlithm object  1206   a  and, for each bit of the first sub-string correlithm object  1206   a  up to the particular number of bits identified in the distance parameter,  6 , changes the value from a zero to a one or from a one to a zero to generate a second sub-string correlithm object  1206   b . The bits of the first sub-string correlithm object  1206   a  that are changed in value for the second sub-string correlithm object  1206   b  are selected randomly from the n-bit digital word. The other bits of the n-bit digital word in second sub-string correlithm object  1206   b  remain the same values as the corresponding bits of the first sub-string correlithm object  1206   a.    
       FIG.  12 B  illustrates a table  1220  that demonstrates the changes in bit values from a first sub-string correlithm object  1206   a  to a second sub-string correlithm object  1206   b . In this example, assume that n=64 such that each sub-string correlithm object  1206  of the string correlithm object  602  is a 64-bit digital word. As discussed previously with regard to  FIG.  9   , the standard deviation is equal to 
                 n   4       ,         
or four bits, for a 64-dimensional space  102 . In one embodiment, the distance parameter, δ, is selected to equal the standard deviation. In this embodiment, the distance parameter is also four bits which means that four bits will be changed from each sub-string correlithm object  1206  to the next in the string correlithm object  602 . In other embodiments where it is desired to create a tighter correlation among sub-string correlithm objects  1206 , a distance parameter may be selected to be less than the standard deviation (e.g., distance parameter of three bits or less where standard deviation is four bits). In still other embodiments where it is desired to create a looser correlation among sub-string correlithm objects  1206 , a distance parameter may be selected to be more than the standard deviation (e.g., distance parameter of five bits or more where standard deviation is four bits). Table  1220  illustrates the first sub-string correlithm object  1206   a  in the first column having four bit values that are changed, by second processing stage  1202   b , from a zero to a one or from a one to a zero to generate second sub-string correlithm object  1206   b  in the second column. By changing four bit values, the core of the first sub-string correlithm object  1206   a  overlaps in 64-dimensional space with the core of the second sub-string correlithm object  1206   b.  
 
     Referring back to  FIG.  12 A , the second processing stage  1202   b  receives from itself the second sub-string correlithm object  1206   b  as feedback. For each bit of the second sub-string correlithm object  1206   b  up to the particular number of bits identified by the distance parameter, the second processing stage  1202   b  changes the value from a zero to a one or from a one to a zero to generate a third sub-string correlithm object  1206   c . The bits of the second sub-string correlithm object  1206   b  that are changed in value for the third sub-string correlithm object  1206   c  are selected randomly from the n-bit digital word. The other bits of the n-bit digital word in third sub-string correlithm object  1206   c  remain the same values as the corresponding bits of the second sub-string correlithm object  1206   b . Referring back to table  1220  illustrated in  FIG.  12 B , the second sub-string correlithm object  1206   b  in the second column has four bit values that are changed, by second processing stage  1202   b , from a zero to a one or from a one to a zero to generate third sub-string correlithm object  1206   c  in the third column. 
     Referring back to  FIG.  12 A , the second processing stage  1202   b  successively outputs a subsequent sub-string correlithm object  1206  by changing bit values of the immediately prior sub-string correlithm object  1206  received as feedback, as described above. This process continues for a predetermined number of sub-string correlithm objects  1206  in the string correlithm object  602 . Together, the sub-string correlithm objects  1206  form a string correlithm object  602  in which the first sub-string correlithm object  1206   a  precedes and is adjacent to the second sub-string correlithm object  1206   b , the second sub-string correlithm object  1206   b  precedes and is adjacent to the third sub-string correlithm object  1206   c , and so on. Each sub-string correlithm object  1206  is separated from an adjacent sub-string correlithm object  1206  in n-dimensional space  102  by a number of bits represented by the distance parameter, S. 
       FIG.  13    is a flowchart of an embodiment of a process  1300  for generating a string correlithm object  602 . At step  1302 , a first sub-string correlithm object  1206   a  is generated, such as by a first processing stage  1202   a  of a string correlithm object generator  1200 . The first sub-string correlithm object  1206   a  comprises an n-bit digital word. At step  1304 , a bit of the n-bit digital word of the sub-string correlithm object  1206  is randomly selected and is changed at step  1306  from a zero to a one or from a one to a zero. Execution proceeds to step  1308  where it is determined whether to change additional bits in the n-bit digital word. In general, process  1300  will change a particular number of bits up to the distance parameter, S. In one embodiment, as described above with regard to  FIGS.  12 A-B , the distance parameter is four bits. If additional bits remain to be changed in the sub-string correlithm object  1206 , then execution returns to step  1304 . If all of the bits up to the particular number of bits in the distance parameter have already been changed, as determined at step  1308 , then execution proceeds to step  1310  where the second sub-string correlithm object  1206   b  is output. The other bits of the n-bit digital word in second sub-string correlithm object  1206   b  remain the same values as the corresponding bits of the first sub-string correlithm object  1206   a.    
     Execution proceeds to step  1312  where it is determined whether to generate additional sub-string correlithm objects  1206  in the string correlithm object  602 . If so, execution returns back to step  1304  and the remainder of the process occurs again to change particular bits up to the number of bits in the distance parameter, δ. Each subsequent sub-string correlithm object  1206  is separated from the immediately preceding sub-string correlithm object  1206  in n-dimensional space  102  by a number of bits represented by the distance parameter, δ. If no more sub-string correlithm objects  1206  are to be generated in the string correlithm object  602 , as determined at step  1312 , execution of process  1300  terminates at steps  1314 . 
     A string correlithm object  602  comprising a series of adjacent sub-string correlithm objects  1206  whose cores overlap with each other permits data values to be correlated with each other in n-dimensional space  102 . Thus, where discrete data values have a pre-existing relationship with each other in the real-world, those relationships can be maintained in n-dimensional space  102  if they are represented by sub-string correlithm objects of a string correlithm object  602 . For example, the letters of an alphabet have a relationship with each other in the real-world. In particular, the letter “A” precedes the letters “B” and “C” but is closer to the letter “B” than the letter “C”. Thus, if the letters of an alphabet are to be represented by a string correlithm object  602 , the relationship between letter “A” and the letters “B” and “C” should be maintained such that “A” precedes but is closer to letter “B” than letter “C.” Similarly, the letter “B” is equidistant to both letters “A” and “C,” but the letter “B” is subsequent to the letter “A” and preceding the letter “C”. Thus, if the letters of an alphabet are to be represented by a string correlithm object  602 , the relationship between letter “B” and the letters “A” and “C” should be maintained such that the letter “B” is equidistant but subsequent to letter “A” and preceding letter “C.” The ability to migrate these relationships between data values in the real-world to relationships among correlithm objects provides a significant advance in the ability to record, store, and faithfully reproduce data within different computing environments. 
       FIG.  14    illustrates how data values that have pre-existing relationships with each other can be mapped to sub-string correlithm objects  1206  of a string correlithm object  602  in n-dimensional space  102  by string correlithm object engine  522  to maintain their relationships to each other. Although the following description of  FIG.  14    is illustrated with respect to letters of an alphabet as representing data values that have pre-existing relationships to each other, other data values can also be mapped to string correlithm objects  602  using the techniques discussed herein. In particular,  FIG.  14    illustrates a node table  1400  stored in memory  504  that includes a column for a subset of sub-string correlithm objects  1206  of a string correlithm object  602 . The first sub-string correlithm object  1206   a  is mapped to a discrete data value, such as the letter “A” of the alphabet. The second sub-string correlithm object  1206   b  is mapped to a discrete data value, such as the letter “B” of the alphabet, and so on with sub-string correlithm objects  1206   c  and  1206   d  mapped to the letters “C” and “D”. As discussed above, the letters of the alphabet have a correlation with each other, including a sequence, an ordering, and a distance from each other. These correlations among letters of the alphabet could not be maintained as represented in n-dimensional space if each letter was simply mapped to a random correlithm object  104 . Accordingly, to maintain these correlations, the letters of the alphabet are mapped to sub-string correlation objects  1206  of a string correlation object  602 . This is because, as described above, the adjacent sub-string correlation objects  1206  of a string correlation object  602  also have a sequence, an ordering, and a distance from each other that can be maintained in n-dimensional space. 
     In particular, just like the letters “A,” “B,” “C,” and “D” have an ordered sequence in the real-world, the sub-string correlithm objects  1206   a ,  1206   b ,  1206   c , and  1206   d  have an ordered sequence and distance relationships to each other in n-dimensional space. Similarly, just like the letter “A” precedes but is closer to the letter “B” than the letter “C” in the real-world, so too does the sub-string correlithm object  1206   a  precede but is closer to the sub-string correlithm object  1206   b  than the sub-string correlithm object  1206   c  in n-dimensional space. Similarly, just like the letter “B” is equidistant to but in between the letters “A” and “C” in the real world, so too is the sub-string correlithm object  1206   b  equidistant to but in between the sub-string correlithm objects  1206   a  and  1206   c  in n-dimensional space. Although the letters of the alphabet are used to provide an example of data in the real world that has a sequence, an ordering, and a distance relationship to each other, one of skill in the art will appreciate that any data with those characteristics in the real world can be represented by sub-string correlithm objects  1206  to maintain those relationships in n-dimensional space. 
     Because the sub-string correlithm objects  1206  of a string correlithm object  602  maintains the sequence, ordering, and/or distance relationships between real-world data in n-dimensional space, node  304  can output the real-world data values (e.g., letters of the alphabet) in the sequence in which they occurred. In one embodiment, the sub-string correlithm objects  1206  can also be associated with timestamps, t 1-4 , to aid with maintaining the relationship of the real-world data with a sequence using the time at which they occurred. For example, sub-string correlithm object  1206   a  can be associated with a first timestamp, t 1 ; sub-string correlithm object  1206   b  can be associated with a second timestamp, t 2 ; and so on. In one embodiment where the real-world data represents frames of a video signal that occur at different times of an ordered sequence, maintaining a timestamp in the node table  1400  aids with the faithful reproduction of the real-world data at the correct time in the ordered sequence. In this way, the node table  1400  can act as a recorder by recording discrete data values for a time period extending from at least the first timestamp, t 1  to a later timestamp, t n . Also, in this way, the node  304  is also configured to reproduce or playback the real-world data represented by the sub-string correlithm objects  1206  in the node table  1400  for a period of time extending from at least the first timestamp, t 1  to a later timestamp, t n . The ability to record real-world data, associate it to sub-string correlithm objects  1206  in n-dimensional space while maintaining its order, sequence, and distance relationships, and subsequently faithfully reproduce the real-world data as originally recorded provides a significant technical advantage to computing systems. 
     The examples described above relate to representing discrete data values, such as letters of an alphabet, using sub-string correlithm objects  1206  of a string correlithm object  602 . However, sub-string correlithm objects  1206  also provide the flexibility to represent non-discrete data values, or analog data values, using interpolation from the real world to n-dimensional space  102 .  FIG.  15 A  illustrates how analog data values that have pre-existing relationships with each other can be mapped to sub-string correlithm objects  1206  of a string correlithm object  602  in n-dimensional space  102  by string correlithm object engine  522  to maintain their relationships to each other.  FIG.  15 A  illustrates a node table  1500  stored in memory  504  that includes a column for each sub-string correlithm object  1206  of a string correlithm object  602 . The first sub-string correlithm object  1206   a  is mapped to an analog data value, such as the number “1.0”. The second sub-string correlithm object  1206   b  is mapped to an analog data value, such as the number “2.0”, and so on with sub-string correlithm objects  1206   c  and  1206   d  mapped to the numbers “3.0” and “4.0.” Just like the letters of the alphabet described above, these numbers have a correlation with each other, including a sequence, an ordering, and a distance from each other. One difference between representing discrete data values (e.g., letters of an alphabet) and analog data values (e.g., numbers) using sub-string correlithm objects  1206  is that new analog data values that fall between pre-existing analog data values can be represented using new sub-string correlithm objects  1206  using interpolation, as described in detail below. If node  304  receives an input representing an analog data value of 1.5, for example, then string correlithm object engine  522  can determine a new sub-string correlithm object  1206  that maintains the relationship between this input of 1.5 and the other numbers that are already represented by sub-string correlithm objects  1206 . In particular, node table  1500  illustrates that the analog data value 1.0 is represented by sub-string correlithm object  1206   a  and analog data value 2.0 is represented by sub-string correlithm object  1206   b . Because the analog data value 1.5 is between the data values of 1.0 and 2.0, then a new sub-string correlithm object  1206  would be created in n-dimensional space  102  between sub-string correlithm objects  1206   a  and  1206   b . This is done by interpolating the distance in n-dimensional space  102  between sub-string correlithm objects  1206   a  and  1206   b  that corresponds to the distance between 1.0 and 2.0 where 1.5 resides and representing that interpolation using an appropriate n-bit digital word. In this example, the analog data value of 1.5 is halfway between the data values of 1.0 and 2.0. Therefore, the sub-string correlithm object  1206  that is determined to represent the analog data value of 1.5 would be halfway between the sub-string correlithm objects  1206   a  and  1206   b  in n-dimensional space  102 . Generating a sub-string correlithm object  1206  that is halfway between sub-string correlithm objects  1206   a  and  1206   b  in n-dimensional space  102  involves modifying bits of the n-bit digital words representing the sub-string correlithm objects  1206   a  and  1206   b . This process is illustrated with respect to  FIG.  15 B . 
       FIG.  15 B  illustrates a table  1520  with a first column representing the n-bit digital word of sub-string correlithm object  1206   a  that is mapped in the node table  1500  to the data value 1.0; a second column representing the n-bit digital word of sub-string correlithm object  1206   b  that is mapped in the node table  1500  to the data value 2.0; and a third column representing the n-bit digital word of sub-string correlithm object  1206   ab  that is generated and associated with the data value 1.5. Table  1520  is stored in memory  504 . As described above with regard to table  1220 , the distance parameter, δ, between adjacent sub-string correlithm objects  1206   a  and  1206   b  was chosen, in one embodiment, to be four bits. This means that for a 64-bit digital word, four bits have been changed from a zero to a one or from a one to a zero in order to generate sub-string correlithm object  1206   b  from sub-string correlithm object  1206   a.    
     In order to generate sub-string correlithm object  1206   ab  to represent the data value of 1.5, a particular subset of those four changed bits between sub-string correlithm objects  1206   a  and  1206   b  should be modified. Moreover, the actual bits that are changed should be selected successively from one end of the n-bit digital word or the other end of the n-bit digital word. Because the data value of 1.5 is exactly halfway between the data values of 1.0 and 2.0, then it can be determined that exactly half of the four bits that are different between sub-string correlithm object  1206   a  and sub-string correlithm object  1206   b  should be changed to generate sub-string correlithm object  1206   ab . In this particular example, therefore, starting from one end of the n-bit digital word as indicated by arrow  1522 , the first bit that was changed from a value of one in sub-string correlithm object  1206   a  to a value of zero in sub-string correlithm object  1206   b  is changed back to a value of one in sub-string correlithm object  1206   ab . Continuing from the same end of the n-bit digital word as indicated by arrow  1522 , the next bit that was changed from a value of one in sub-string correlithm object  1206   a  to a value of zero in sub-string correlithm object  1206   b  is changed back to a value of one in sub-string correlithm object  1206   ab . The other two of the four bits that were changed from sub-string correlithm object  1206   a  to sub-string correlithm object  1206   b  are not changed back. Accordingly, two of the four bits that were different between sub-string correlithm objects  1206   a  and  1206   b  are changed back to the bit values that were in sub-string correlithm object  1206   a  in order to generate sub-string correlithm object  1206   ab  that is halfway between sub-string correlithm objects  1206   a  and  1206   b  in n-dimensional space  102  just like data value 1.5 is halfway between data values 1.0 and 2.0 in the real world. 
     Other input data values can also be interpolated and represented in n-dimensional space  102 , as described above. For example, if the input data value received was 1.25, then it is determined to be one-quarter of the distance from the data value 1.0 and three-quarters of the distance from the data value 2.0. Accordingly, a sub-string correlithm object  1206   ab  can be generated by changing back three of the four bits that differ between sub-string correlithm objects  1206   a  and  1206   b . In this regard, the sub-string correlithm object  1206   ab  (which represents the data value 1.25) will only differ by one bit from the sub-string correlithm object  1206   a  (which represents the data value 1.0) in n-dimensional space  102 . Similarly, if the input data value received was 1.75, then it is determined to be three-quarters of the distance from the data value 1.0 and one-quarter of the distance from the data value 2.0. Accordingly, a sub-string correlithm object  1206   ab  can be generated by changing back one of the four bits that differ between sub-string correlithm objects  1206   a  and  1206   b . In this regard, the sub-string correlithm object  1206   ab  (which represents the data value 1.75) will differ by one bit from the sub-string correlithm object  1206   b  (which represents the data value 2.0) in n-dimensional space  102 . In this way, the distance between data values in the real world can be interpolated to the distance between sub-string correlithm objects  1206  in n-dimensional space  102  in order to preserve the relationships among analog data values. 
     Although the example above was detailed with respect to changing bit values from the top end of the n-bit digital word represented by arrow  1522 , the bit values can also be successively changed from the bottom end of the n-bit digital word. The key is that of the bit values that differ from sub-string correlithm object  1206   a  to sub-string correlithm object  1206   b , the bit values that are changed to generate sub-string correlithm object  1206   ab  should be taken consecutively as they are encountered whether from the top end of the n-bit digital word (as represented by arrow  1522 ) or from the bottom end of the n-bit digital word. This ensures that sub-string correlithm object  1206   ab  will actually be between sub-string correlithm objects  1206   a  and  1206   b  rather than randomly drifting away from both of sub-string correlithm objects  1206   a  and  1206   b  in n-dimensional space  102 . 
       FIG.  16    illustrates how real-world data values can be aggregated and represented by correlithm objects  104  (also referred to as non-string correlithm objects  104 ), which are then linked to corresponding sub-string correlithm objects  1206  of a string correlithm object  602  by string correlithm object engine  522 . As described above with regard to  FIG.  12 A , a string correlithm object generator  1200  generates sub-string correlithm objects  1206  that are adjacent to each other in n-dimensional space  102  to form a string correlithm object  602 . The sub-string correlithm objects  1206   a - n  embody an ordering, sequence, and distance relationships to each other in n-dimensional space  102 . As described in detail below, non-string correlithm objects  104  can be mapped to corresponding sub-string correlithm objects  1206  and stored in a node table  1600  to provide an ordering or sequence among them in n-dimensional space  102 . This allows node table  1600  to record, store, and faithfully reproduce or playback a sequence of events that are represented by non-string correlithm objects  104   a - n . In one embodiment, the sub-string correlithm objects  1206  and the non-string correlithm objects  104  can both be represented by the same length of digital word, n, (e.g., 64 bit, 128 bit, 256 bit). In another embodiment, the sub-string correlithm objects  1206  can be represented by a digital word of one length, n, and the non-string correlithm objects  104  can be represented by a digital word of a different length, m. 
     In a particular embodiment, the non-string correlithm objects  104   a - n  can represent aggregated real-world data. For example, real-world data may be generated related to the operation of an automated teller machine (ATM). In this example, the ATM machine may have a video camera and a microphone to tape both the video and audio portions of the operation of the ATM by one or more customers in a vestibule of a bank facility or drive-through. The ATM machine may also have a processor that conducts and stores information regarding any transactions between the ATM and the customer associated with a particular account. The bank facility may simultaneously record video, audio, and transactional aspects of the operation of the ATM by the customer for security, audit, or other purposes. By aggregating the real-world data values into non-string correlithm objects  104  and associating those non-string correlithm objects  104  with sub-string correlithm objects  1206 , as described in greater detail below, the correlithm object processing system may maintain the ordering, sequence, and other relationships between the real-world data values in n-dimensional space  102  for subsequent reproduction or playback. Although the example above is detailed with respect to three particular types of real-world data (i.e., video, audio, transactional data associated with a bank ATM) that are aggregated and represented by correlithm objects  104 , it should be understood that any suitable number and combination of different types of real-world data can be aggregated and represented in this example. 
     For a period of time from t 1  to t n , the ATM records video, audio, and transactional real-world data. For example, the period of time may represent an hour, a day, a week, a month, or other suitable time period of recording. The real-world video data is represented by video correlithm objects  1602 . The real-world audio data is represented by audio correlithm objects  1604 . The real-world transaction data is represented by transaction correlithm objects  1606 . The correlithm objects  1602 ,  1604 , and  1606  can be aggregated to form non-string correlithm objects  104 . For example, at a first time, t 1 , the ATM generates: (a) real-world video data that is represented as a first video correlithm object  1602   a ; (b) real-world audio data that is represented by a first audio correlithm object  1604   a ; and (c) real-world transaction data that is represented by a first transaction correlithm object  1606   a . Correlithm objects  1602   a ,  1604   a , and  1606   a  can be represented as a single non-string correlithm object  104   a  which is then associated with first sub-string correlithm object  1206   a  in the node table  1600 . In one embodiment, the timestamp, t 1 , can also be captured in the non-string correlithm object  104   a . In this way, three different types of real-world data are captured, represented by a non-string correlithm object  104  and then associated with a portion of the string correlithm object  602 . 
     Continuing with the example, at a second time, t 2 , the ATM generates: (a) real-world video data that is represented as a second video correlithm object  1602   b ; (b) real-world audio data that is represented by a second audio correlithm object  1604   b ; and (c) real-world transaction data that is represented by a second transaction correlithm object  1606   b . The second time, t 2 , can be a predetermined time or suitable time interval after the first time, t 1 , or it can be at a time subsequent to the first time, t 1 , where it is determined that one or more of the video, audio, or transaction data has changed in an meaningful way (e.g., video data indicates that a new customer entered the vestibule of the bank facility; another audible voice is detected or the customer has made an audible request to the ATM; or the customer is attempting a different transaction or a different part of the same transaction). Correlithm objects  1602   b ,  1604   b , and  1606   b  can be represented as a single non-string correlithm object  104   b  which is then associated with second sub-string correlithm object  1206   b  in the node table  1600 . In one embodiment, the timestamp, t 2 , can also be captured in the non-string correlithm object  104   b.    
     Continuing with the example, at a third time, t 3 , the ATM generates: (a) real-world video data that is represented as a third video correlithm object  1602   c ; (b) real-world audio data that is represented by a third audio correlithm object  1604   c ; and (c) real-world transaction data that is represented by a third transaction correlithm object  1606   c . The third time, t 3 , can be a predetermined time or suitable time interval after the second time, t 2 , or it can be at a time subsequent to the second time, t 2 , where it is determined that one or more of the video, audio, or transaction data has changed again in a meaningful way, as described above. Correlithm objects  1602   c ,  1604   c , and  1606   c  can be represented as a single non-string correlithm object  104   c  which is then associated with third sub-string correlithm object  1206   c  in the node table  1600 . In one embodiment, the timestamp, t 3 , can also be captured in the non-string correlithm object  104   c.    
     Concluding with the example, at an n-th time, Li, the ATM generates: (a) real-world video data that is represented as an n-th video correlithm object  1602   n ; (b) real-world audio data that is represented by an n-th audio correlithm object  1604   n ; and (c) real-world transaction data that is represented by an n-th transaction correlithm object  1606   n . The third time, t n , can be a predetermined time or suitable time interval after a previous time, t n−1 , or it can be at a time subsequent to the previous time, t n−1 , where it is determined that one or more of the video, audio, or transaction data has changed again in a meaningful way, as described above. Correlithm objects  1602   n ,  1604   n , and  1606   n  can be represented as a single non-string correlithm object  104   n  which is then associated with n-th sub-string correlithm object  1206   n  in the node table  1600 . In one embodiment, the timestamp, t n , can also be captured in the non-string correlithm object  104   n.    
     As illustrated in  FIG.  16   , different types of real-world data (e.g., video, audio, transactional) can be captured and represented by correlithm objects  1602 ,  1604 , and  1606  at particular timestamps. Those correlithm objects  1602 ,  1604 , and  1606  can be aggregated into correlithm objects  104 . In this way, the real-world data can be “fanned in” and represented by a common correlithm object  104 . By capturing real-world video, audio, and transaction data at different relevant timestamps from t 1 -t n , representing that data in correlithm objects  104 , and then associating those correlithm objects  104  with sub-string correlithm objects  1206  of a string correlithm object  602 , the node table  1600  described herein can store vast amounts of real-world data in n-dimensional space  102  for a period of time while preserving the ordering, sequence, and relationships among real-world data events and corresponding correlithm objects  104  so that they can be faithfully reproduced or played back in the real-world, as desired. This provides a significant savings in memory capacity. 
       FIG.  17    is a flowchart of an embodiment of a process  1700  for linking non-string correlithm objects  104  with sub-string correlithm objects  1206 . At step  1702 , string correlithm object generator  1200  generates a first sub-string correlithm object  1206   a . Execution proceeds to step  1704  where correlithm objects  104  are used to represent different types of real-world data at a first timestamp, t 1 . For example, correlithm object  1602   a  represents real-world video data; correlithm object  1604   a  represents real-world audio data; and correlithm object  1606   a  represents real-world transaction data. At step  1706 , each of correlithm objects  1602   a ,  1604   a , and  1606   a  captured at the first timestamp, t 1 , are aggregated and represented by a non-string correlithm object  104   a . Execution proceeds to step  1708 , where non-string correlithm object  104   a  is linked to sub-string correlithm object  1206   a , and this association is stored in node table  1600  at step  1710 . At step  1712 , it is determined whether real-world data at the next timestamp should be captured. For example, if a predetermined time interval since the last timestamp has passed or if a meaningful change to the real-world data has occurred since the last timestamp, then execution returns to steps  1702 - 1710  where another sub-string correlithm object  1206  is generated (step  1702 ); correlithm objects representing real-world data is captured at the next timestamp (step  1704 ); those correlithm objects are aggregated and represented in a non-string correlithm object  104  (step  1706 ); that non-string correlithm object  104  is linked with a sub-string correlithm object  1206  (step  1708 ); and this association is stored in the node table  1600  (step  1710 ). If no further real-world data is to be captured at the next timestamp, as determined at step  1712 , then execution ends at step  1714 . 
       FIG.  18    illustrates how sub-string correlithm objects  1206   a - e  of a first string correlithm object  602   a  are linked to sub-string correlithm objects  1206   x - z  of a second string correlithm object  602   b  by string correlithm object engine  522 . The first string correlithm object  602   a  includes sub-string correlithm objects  1206   a - e  that are separated from each other by a first distance  1802  in n-dimensional space  102 . The second string correlithm object  602   b  includes sub-string correlithm objects  1206   x - z  that are separated from each other by a second distance  1804  in n-dimensional space  102 . In one embodiment, the sub-string correlithm objects  1206   a - e  of the first string correlithm object  602   a  and the sub-string correlithm objects  1206   x - z  can both be represented by the same length of digital word, n, (e.g., 64-bit, 128-bit, 256-bit). In another embodiment, the sub-string correlithm objects  1206   a - e  of the first string correlithm object  602   a  can be represented by a digital word of one length, n, and the sub-string correlithm objects  1206   x - z  of the second string correlithm object  602   b  can be represented by a digital word of a different length, m. Each sub-string correlithm object  1206   a - e  represents a particular data value, such as a particular type of real-world data value. When a particular sub-string correlithm object  1206   a - e  of the first string correlithm object  602  is mapped to a particular sub-string correlithm object  1206   x - z  of the second string correlithm object  602 , as described below, then the data value associated with the sub-string correlithm object  1206   a - e  of the first string correlithm object  602   a  becomes associated with the mapped sub-string correlithm object  1206   x - z  of the second string correlithm object  602   b.    
     Mapping data represented by sub-string correlithm objects  1206   a - e  of a first string correlithm object  602   a  in a smaller n-dimensional space  102  (e.g., 64-bit digital word) where the sub-string correlithm objects  1206   a - e  are more tightly correlated to sub-string correlithm objects  1206   x - z  of a second string correlithm object  602   b  in a larger n-dimensional space  102  (e.g., 256-bit digital word) where the sub-string correlithm objects  1206   x - y  are more loosely correlated (or vice versa) can provide several technical advantages in a correlithm object processing system. For example, such a mapping can be used to compress data and thereby save memory resources. In another example, such a mapping can be used to spread out data and thereby create additional space in n-dimensions for the interpolation of data. In yet another example, such a mapping can be used to apply a transformation function to the data (e.g., linear transformation function or non-linear transformation function) from the first string correlithm object  602   a  to the second string correlithm object  602   b.    
     The mapping of a first string correlithm object  602   a  to a second correlithm object  602   b  operates, as described below. First, a node  304  receives a particular sub-string correlithm object  1206 , such as  1206   b  illustrated in  FIG.  18   . To map this particular sub-string correlithm object  1206   b  to the second correlithm object  602   b , the node  304  determines the proximity of it to corresponding sub-string correlithm objects  1206   x  and  1206   y  in second string correlithm object  602   b  (e.g., by determining the Hamming distance between  1206   b  and  1206   x , and between  1206   b  and  1206   y ). In particular, node  304  determines a first proximity  1806  in n-dimensional space between the sub-string correlithm object  1206   b  and sub-string correlithm object  1206   x ; and determines a second proximity  1808  in n-dimensional space between the sub-string correlithm object  1206   b  and sub-string correlithm object  1206   y . As illustrated in  FIG.  18   , the first proximity  1806  is smaller than the second proximity  1808 . Therefore, sub-string correlithm object  1206   b  is closer in n-dimensional space  102  to sub-string correlithm object  1206   x  than to sub-string correlithm object  1206   y . Accordingly, node  304  maps sub-string correlithm object  1206   b  of first string correlithm object  602   a  to sub-string correlithm object  1206   x  of second string correlithm object  602   b  and maps this association in node table  1820  stored in memory  504 . 
     The mapping of the first string correlithm object  602   a  to a second correlithm object  602   b  continues in operation, as described below. The node  304  receives another particular sub-string correlithm object  1206 , such as  1206   c  illustrated in  FIG.  18   . To map this particular sub-string correlithm object  1206   c  to the second correlithm object  602   b , the node  304  determines the proximity of it to corresponding sub-string correlithm objects  1206   x  and  1206   y  in second string correlithm object  602   b . In particular, node  304  determines a first proximity  1810  in n-dimensional space between the sub-string correlithm object  1206   c  and sub-string correlithm object  1206   x ; and determines a second proximity  1812  in n-dimensional space between the sub-string correlithm object  1206   c  and sub-string correlithm object  1206   y . As illustrated in  FIG.  18   , the second proximity  1812  is smaller than the second proximity  1810 . Therefore, sub-string correlithm object  1206   c  is closer in n-dimensional space  102  to sub-string correlithm object  1206   y  than to sub-string correlithm object  1206   x . Accordingly, node  304  maps sub-string correlithm object  1206   c  of first string correlithm object  602   a  to sub-string correlithm object  1206   y  of second string correlithm object  602   b  and maps this association in node table  1820 . 
     The sub-string correlithm objects  1206   a - e  may be associated with timestamps in order to capture a temporal relationship among them and with the mapping to sub-string correlithm objects  1206   x - z . For example, sub-string correlithm object  1206   a  may be associated with a first timestamp, second sub-string correlithm object  1206   b  may be associated with a second timestamp later than the first timestamp, and so on. 
       FIG.  19    is a flowchart of an embodiment of a process  1900  for linking a first string correlithm object  602   a  with a second string correlithm object  602   b . At step  1902 , a first string correlithm object  602   a  is received at node  304 . The first correlithm object  602   a  includes a first plurality of sub-string correlithm objects  1206 , such as  1206   a - e  illustrated in  FIG.  18   . Each of these sub-string correlithm objects  1206   a - e  are separated from each other by a first distance  1802  in n-dimensional space  102 . At step  1904 , a second string correlithm object  602   b  is received at node  304 . The second correlithm object  602   b  includes a second plurality of sub-string correlithm objects  1206 , such as  1206   x - z  illustrated in  FIG.  18   . Each of these sub-string correlithm objects  1206   x - z  are separated from each other by a second distance  1804  in n-dimensional space  102 . At step  1906 , node  304  receives a particular sub-string correlithm object  1206  of the first string correlithm object  602   a . At step  1908 , node  304  determines a first proximity in n-dimensional space  102 , such as proximity  1806  illustrated in  FIG.  18   , to a corresponding sub-string correlithm object  1206  of second correlithm object  602   b , such as sub-string correlithm object  1206   x  illustrated in  FIG.  18   . At step  1910 , node  304  determines a second proximity in n-dimensional space  102 , such as proximity  1808  illustrated in  FIG.  18   , to a corresponding sub-string correlithm object  1206  of second correlithm object  602   b , such as sub-string correlithm object  1206   y  illustrated in  FIG.  18   . 
     At step  1912 , node  304  selects the sub-string correlithm object  1206  of second string correlithm object  602   b  to which the particular sub-string correlithm object  1206  received at step  1906  is closest in n-dimensional space based upon the first proximity determined at step  1908  and the second proximity determined at step  1910 . For example, as illustrated in  FIG.  18   , sub-string correlithm object  1206   b  is closer in n-dimensional space to sub-string correlithm object  1206   x  than sub-string correlithm object  1206   y  based on first proximity  1806  being smaller than second proximity  1808 . Execution proceeds to step  1914  where node  304  maps the particular sub-string correlithm object  1206  received at step  1906  to the sub-string correlithm object  1206  of second string correlithm object  602   b  selected at step  1912 . At step  1916 , node  304  determines whether there are any additional sub-string correlithm objects  1206  of first string correlithm object  602   a  to map to the second string correlithm object  602   b . If so, execution returns to perform steps  1906  through  1914  with respect to a different particular sub-string correlithm object  1206  of first string correlithm object  602   a . If not, execution terminates at step  1918 . 
       FIG.  20    illustrates one embodiment of an actor  306  that operates using an actor table  310  that maps sub-string correlithm objects  1206   a - d  of a string correlithm object  602  in n-dimensional space  102  to analog or discrete data values. Actor  306  may be implemented by actor engine  514 , as described above with respect to  FIG.  5   . Although the following description of  FIG.  20    is illustrated with respect to analog data values (e.g. numbers 1.0, 2.0, 3.0, 4.0, etc.) that have a pre-existing relationship to each other, other analog or discrete data values can also be mapped to sub-string correlithm objects  1206   a - d  in actor table  310 , as described below. In particular,  FIG.  20    illustrates an actor table  310  stored in memory  504  that includes a row for a subset of sub-string correlithm objects  1206  of string correlithm object  602 . The first sub-string correlithm object  1206   a  is mapped to an analog data value, such as the number 1.0. The second sub-string correlithm object  1206   b  is mapped to an analog data value, such as the number 2.0, and so on with sub-string correlithm objects  1206   c  and  1206   d  mapped to the numbers 3.0 and 4.0, respectively. The analog data values 1.0, 2.0, 3.0, 4.0, etc. have a correlation with each other, including a sequence, an ordering, and a distance from each other. To maintain these correlations, these analog data values are mapped to sub-string correlithm objects  1206  of a string correlithm object  602  in actor table  310 . This is because, as described above, the adjacent sub-string correlation objects  1206  of a string correlation object  602  also have a sequence, an ordering, and a distance from each other that can be maintained in n-dimensional space  102 . The sub-string correlithm objects  1206  of string correlithm object  602  described herein are particular embodiments of correlithm objects  104  described above. 
     In particular, just like the analog data values 1.0, 2.0, 3.0, and 4.0 have an ordered sequence as real-world data values  326 , the sub-string correlithm objects  1206   a ,  1206   b ,  1206   c , and  1206   d  have an ordered sequence and distance relationship to each other in n-dimensional space  102 . For example, just like the analog data value 1.0 precedes but is closer to 2.0 than 3.0, so too does the sub-string correlithm object  1206   a  precede but is closer to the sub-string correlithm object  1206   b  than the sub-string correlithm object  1206   c  in n-dimensional space  102 . Similarly, just like the analog data value 2.0 is equidistant to but in between 1.0 and 3.0, so too is the sub-string correlithm object  1206   b  equidistant to but in between the sub-string correlithm objects  1206   a  and  1206   c  in n-dimensional space  102 . Although a sequential ordering of numbers is used to provide an example of analog data values in the real world that has a sequence, an ordering, and a distance relationship to each other, one of skill in the art will appreciate that any data with those characteristics in the real world can be represented by sub-string correlithm objects  1206  to maintain those relationships in n-dimensional space  102 . For example, actor table  310  may map the sub-string correlithm objects  1206   a - d  to an ordered sequence of letters in the alphabet, such as letters “A,” “B,” “C,” and “D”. In another example, actor table  310  may map the sub-string correlithm objects  1206   a - d  to an ordered sequence of digital data values, such as the binary digits “1,” “0,” “0,” “1”. 
     Actor  306  serves as an interface that allows a user device  100  to convert correlithm objects  104  in the correlithm object domain back to real world values  326  or data samples. Actor  306  enables the user device  100  to convert from correlithm objects  104  into any suitable type of real world value. Actor  306  is configured to receive a correlithm object  104  (e.g. an output correlithm object  104  from a node  304 ), to determine a real-world output value  326  based on the received correlithm object  104 , and to output the real-world output value  326 . In particular, actor  306  receives an input correlithm object  104  and compares it with the sub-string correlithm objects  1206  to identify the particular sub-string correlithm object  1206  that is closest in n-dimensional space  102  to input correlithm object  104 . For example, node  304  determines the distances in n-dimensional space  102  between input correlithm object  104  and each of the sub-string correlithm objects  1206 . In one embodiment, these distances may be determined by calculating Hamming distances between input correlithm object  104  and each of the sub-string correlithm objects  1206 . In another embodiment, these distances may be determined by calculating the anti-Hamming distances between input correlithm object  104  and each of the sub-string correlithm objects  1206 . 
     The Hamming distance may be determined based on the number of bits that differ between the binary string representing input correlithm object  104  and each of the binary strings representing each of the sub-string correlithm objects  1206   a - d . The anti-Hamming distance may be determined based on the number of bits that are the same between the binary string representing input correlithm object  104  and each of the binary strings representing each of the sub-string correlithm objects  1206   a - d . In still other embodiments, the distances in n-dimensional space between input correlithm object  104  and each of the correlithm objects  1206   a - d  may be determined using a Minkowski distance or a Euclidean distance. 
     Upon calculating the n-dimensional distances between input correlithm object  104  and the sub-string correlithm objects  1206   a - d  using one of the techniques described above, actor  306  determines which calculated n-dimensional distance is the shortest. This is because the sub-string correlithm object  1206  having the shortest n-dimensional distance between it and input correlithm object  104  received by actor  306  can be thought of as being the most statistically similar match. Actor  306  identifies the data value that corresponds to the sub-string correlithm object  1206  that was determined to have the shortest n-dimensional distance between it and input correlithm object  104 , and outputs this data value as real-world data value  326 . For example, if actor  306  determined that sub-string correlithm object  1206   c  had the shortest n-dimensional distance between it and input correlithm object  104 , actor  306  would output the value 3.0 as the real-world data value  326 . 
     In a particular embodiment, actor  306  does not necessarily calculate the n-dimensional distance between the input correlithm object  104  and each sub-string correlithm object  1206  stored in actor table  310 . Instead, actor  306  can take advantage of the fact that the sub-string correlithm objects  1206   a - d  follow an ordered sequence to determine when further comparisons of input correlithm object  104  with sub-string correlithm objects  1206  are no longer needed in order to find the sub-string correlithm object  1206  with the shortest n-dimensional distance. An example operation will be described to illustrate this concept. Assume that actor  306  receives an input correlithm object  104 . Actor  306  compares the input correlithm object  104  with the first sub-string correlithm object  1206  stored in actor table  310 , which in this example is sub-string correlithm object  1206   a . Assume that actor  306  determines a first Hamming distance for this comparison. Next, actor  306  compares the input correlithm object  104  with the second sub-string correlithm object  1206  stored in actor table  310 , which in this example is sub-string correlithm object  1206   b . Assume that actor  306  determines a second Hamming distance which is smaller than the first Hamming distance, indicating that second sub-string correlithm object  1206   b  has a shorter n-dimensional distance between it and input correlithm object  104  than first sub-string correlithm object  1206   a . Next, actor  306  compares the input correlithm object  104  with the third sub-string correlithm object  1206   c . Assume that actor  306  determines a third Hamming distance which is larger than the second Hamming distance, indicating that third sub-string correlithm object  1206   c  has a larger n-dimensional distance between it and input correlithm object  104  than second sub-string correlithm object  1206   b . At this point, actor  306  can conclude that because sub-string correlithm objects  1206  follow an ordered sequence, any further comparisons of input correlithm object  104  with sub-string correlithm objects  1206  will only produce n-dimensional distances that are larger than the second Hamming distance. In other words, actor  306  determined an inflection point in the determination of n-dimensional distances when it proceeded from second sub-string correlithm object  1206   b  to third sub-string correlithm object  1206   c  (i.e., the second n-dimensional distance was shorter than the first n-dimensional distance, but the third n-dimensional distance was larger than the second n-dimensional distance, thereby indicating an inflection point). Accordingly, actor  306  determines that the second sub-string correlithm object  1206   b  has the shortest n-dimensional distance between it and input correlithm object  104 . In other words, second sub-string correlithm object  1206   b  is the most statistically similar match to input correlithm object  104 . In this embodiment, there was no need to determine the n-dimensional distance between input correlithm object  104  and fourth sub-string correlithm object  1206   d . Thus, actor  306  did not perform any further calculations of n-dimensional distances beyond the third n-dimensional distance calculation in this example, and thereby saved time, memory, and processing resources. 
     Although this particular example was detailed with respect to starting by comparing the input correlithm object  104  and the first sub-string correlithm object  1206   a , and then calculating n-dimensional distances with input correlithm object  104  sequentially through the remainder of the sub-string correlithm objects  1206 , it should be understood that actor  306  could start by comparing input correlithm object  104  and the last sub-string correlithm object  1206   d  and then calculating n-dimensional distances with input correlithm object  104  sequentially in the opposite direction through the remainder of the sub-string correlithm objects  1206   c - a . In still other examples, actor  306  could start by comparing input correlithm object  104  with the sub-string correlithm objects  1206  at either end of the actor table  310  and then calculating n-dimensional distances with input correlithm object  104  sequentially toward the middle of the sub-string correlithm objects  1206  until the n-dimensional distance determination between input correlithm object  104  and any particular sub-string correlithm object  1206  reverses the trend of n-dimensional distances getting smaller (e.g., determined Hamming distances between input correlithm object  104  and each successive sub-string correlithm object  1206  that were getting smaller suddenly get larger, that is, hit an inflection point) or getting larger (e.g., determined Hamming distances between input correlithm object  104  and each successive sub-string correlithm object  1206  that were getting larger suddenly get smaller, that is, hit an inflection point). In still another example, actor  306  could start by comparing input correlithm object  104  with the sub-string correlithm object  1206  at or near the middle of the list of sub-string correlithm objects  1206  in actor table  310  and then calculating n-dimensional distances with input correlithm object  104  sequentially outward in both directions until the n-dimensional distance determination between input correlithm object  104  and any particular sub-string correlithm object  1206  reverses the trend of n-dimensional distances getting smaller (e.g., determined Hamming distances between input correlithm object  104  and each successive sub-string correlithm object  1206  that were getting smaller suddenly get larger, that is, hit an inflection point) or getting larger (e.g., determined Hamming distances between input correlithm object  104  and each successive sub-string correlithm object  1206  that were getting larger suddenly get smaller, that is, hit an inflection point). 
     In a particular embodiment, actor  306  may use only a subset of the bits of a binary string that forms the input correlithm object  104  and the binary strings that form the sub-string correlithm objects  1206  to perform the n-dimensional distance calculation. For example, if the input correlithm object  104  and the sub-string correlithm objects  1206  each comprise 256-bit binary strings, then actor  306  may compare only a particular subset of bits of input correlithm object  104  (e.g., the first 64 bits) with a corresponding subset of bits of the sub-string correlithm objects  1206  (e.g., the first 64 bits) to determine n-dimensional distances and identify the shortest n-dimensional distance, as described above. This embodiment allows a 64-bit processor to more readily perform the operations involved with determining n-dimensional distances, and thereby saves time, memory, and processing resources while still identifying a statistically significant result. 
       FIG.  21    is a flowchart of an embodiment of a process  2100  for comparing an input correlithm object  104  with sub-string correlithm objects  1206  in an actor table  310 , identifying the sub-string correlithm object  1206  with the smallest n-dimensional distance to the input correlithm object  104  and outputting a real-world data value  326  corresponding to the identified sub-string correlithm object  1206 . At step  2102 , actor  306  stores an actor table  310  that includes a plurality of sub-string correlithm objects  1206  and corresponding real-world data values  326 . Actor  306  receives input correlithm object  104  at step  2104 . At step  2106 , actor  306  determines a first n-dimensional distance between input correlithm object  104  and a first sub-string correlithm object  1206  in actor table  310 . Execution proceeds to step  2108  where actor  306  determines a second n-dimensional distance between input correlithm object  104  and a second sub-string correlithm object  1206  that is adjacent to the first sub-string correlithm object  1206  used in step  2106 . Execution proceeds to step  2110 , where actor  306  determines whether the second n-dimensional distance determined at step  2108  is smaller or larger than the first n-dimensional distance determined at step  2106 . 
     If the second n-dimensional distance is larger than the first n-dimensional distance, execution proceeds to step  2112  where actor  306  determines a third n-dimensional distance between input correlithm object  104  and a third sub-string correlithm object  1206  adjacent to the second sub-string correlithm object  1206 . At step  2114 , actor  306  determines that the third n-dimensional distance determined at step  2112  is smaller than the second n-dimensional distance determined at step  2108 . Accordingly, at step  2120 , actor  306  determines that second sub-string correlithm object  1206  has the smallest n-dimensional distance to input correlithm object  104 . Actor  306  outputs the real-world data value  326  associated with second sub-string correlithm object  1206  at step  2122 . 
     If the second n-dimensional distance is smaller than the first n-dimensional distance, as determined at step  2110 , execution proceeds to step  2116  where actor  306  determines a third n-dimensional distance between input correlithm object  104  and a third sub-string correlithm object  1206  adjacent to the second sub-string correlithm object  1206 . At step  2118 , actor  306  determines that the third n-dimensional distance determined at step  2112  is larger than the second n-dimensional distance determined at step  2108 . Accordingly, at step  2120 , actor  306  determines that second sub-string correlithm object  1206  has the smallest n-dimensional distance to input correlithm object  104 . Actor  306  outputs the real-world data value  326  associated with second sub-string correlithm object  1206  at step  2122 . Execution terminates at step  2124 . 
       FIG.  22    is a schematic view of an embodiment of a correlithm object processing system  2200  that is implemented by a user device  100  to perform operations using correlithm objects  104 . The system  2200  generally comprises an input node  2202 , and a plurality of output nodes  2204  that are arranged in clusters  2206 , as explained below. The system  2200  may be configured with any suitable number and/or configuration of input nodes  2202  and output nodes  2204  in clusters  2206  to meet operational needs. In one embodiment, the input node  2202  and the plurality of output nodes  2204  combine to form a sensor  302  that is configured to receive a real-world data value  320  (e.g., numerical value  2208 ) and output a correlithm object  104  (e.g., correlithm object  2220 ) (e.g., as illustrated and described with respect to  FIG.  3   ). Sensor  302 , the input node  2202  and/or the output nodes  2204  may be implemented using a sensor engine  510 , as described above with respect to  FIG.  5   . In general, input node  2202  receives a numerical value  2208  and a flag  2210  associated with the numerical value  2208 . The numerical value  2208  comprises real-world data, such as a multi-digit numerical value and flag  2210  indicates a particular numeric system (e.g., base ten, base two, hexadecimal, octal, etc.) associated with the corresponding numerical value  2208 . Each cluster  2206  of output nodes  2204  is associated with a particular numeric system. Thus, input node  2202  routes the numeric value  2208  to the appropriate cluster  2206  of output nodes  2204  based on the particular numeric system that is identified by the corresponding flag  2210 . Each output node  2204  of the selected cluster  2206  then generates a correlithm object  2220  to represent each corresponding digit of the numerical value  2208  individually. Correlithm objects  2220  described herein are particular embodiments of correlithm objects  104  described above. 
     An example is provided to illustrate the operation of system  2200 . A numeric value  2208  configured in base ten (e.g., using digits 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9) can have multiple digits, including one digit in the 1&#39;s place, one digit in the 10&#39;s place, one digit in the 100&#39;s place, and so on. Similarly, a numeric value  2208  configured in base two (e.g., using digits 0 and 1) can also have multiple digits, including one digit in the 1&#39;s place, and one digit in the 2&#39;s place, and so on. A numeric value  2208  can be configured in other known numeric systems, including hexadecimal, octal, base three, among others, and can have multiple digits in those numeric systems as well. It is useful in a correlithm object based system to represent each individual digit of these numeric values  2208  with a corresponding correlithm object  2220  according to the numeric system that is used to configure those numeric values  2208 . 
     Thus, for example, if a flag  2210  indicates that a corresponding numeric value  2208  is configured in base ten, then input node  2202  routes that numeric value  2208  to the cluster  2206   a  that includes output nodes  2204   a  and  2204   b . In a particular example where the numeric value  2208  is “32” configured in base ten, input node  2202  may route that numeric value  2208  to cluster  2206   a . More specifically, the digit “2” in the numeric value  2208  of “32” may be routed to output node  2204   b , which operates on the 1&#39;s place digit. Furthermore, the digit “3” in the numeric value of “32” may be routed to output node  2204   a , which operates on the 10&#39;s place digit. The cluster  2206   a  can include a number of output nodes  2204  corresponding to the number of digits in the numeric value  2208 . In this example, because the numeric value  2208  of “32” is a two-digit number, cluster  2206   a  is illustrated as having two output nodes  2204   a  and  2204   b . If numeric value  2208  was a three-digit number, cluster  2206   a  would have three output nodes  2204 , and so on. Output node  2204   a  generates a correlithm object  2220   a  from the 10&#39;s place digit (e.g., “3”) in the numeric value  2208 . Output node  2204   b  generates a correlithm object  2220   b  from the 1&#39;s place digit (e.g., “2”) in the numeric value  2208 . In one embodiment, output nodes  2204   a  and  2204   b  generate random correlithm objects  2220   a  and  2220   b , respectively. In another embodiment, output nodes  2204   a  and  2204   b  generate correlithm objects  2220   a  and  2220   b  by consulting a table  2222  that correlates each digit in base ten (e.g., 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9) to a specific, corresponding correlithm object  2220 . An example of table  2222  is illustrated below. 
     
       
         
           
               
               
             
               
                 TABLE 2222 
               
               
                   
               
               
                 Numeric value 2208 
                 Correlithm object 2220 
               
               
                   
               
             
            
               
                 0 
                 CO 0   
               
               
                 1 
                 CO 1   
               
               
                 2 
                 CO 2   
               
               
                 3 
                 CO 3   
               
               
                 4 
                 CO 4   
               
               
                 5 
                 CO 5   
               
               
                 6 
                 CO 6   
               
               
                 7 
                 CO 7   
               
               
                 8 
                 CO 8   
               
               
                 9 
                 CO 9   
               
               
                   
               
            
           
         
       
     
     In another example, if flag  2210  indicates that a corresponding numeric value  2208  is configured in base two (i.e., binary), then input node  2202  may route that numeric value  2208  to the cluster  2206   x  that includes output nodes  2204   x  and  2204   y . In a particular example where the numeric value  2208  is “01” configured in base two, input node  2202  may route that numeric value  2208  to cluster  2206   x . More specifically, the digit “1” in the numeric value  2208  of “01” may be routed to output node  2204   y , which operates on the  1 ′s place digit. Furthermore, the digit “0” in the numeric value of “01” may be routed to output node  2204   x , which operates on the 2&#39;s place digit. The cluster  2206   x  can include a number of output nodes  2204  corresponding to the number of digits in the numeric value  2208 . In this example, because the numeric value  2208  of “01” is a two-digit number, cluster  2206   x  is illustrated as having two output nodes  2204   x  and  2204   y . If numeric value  2208  was a three-digit number, cluster  2206   x  would have three output nodes  2204 , and so on. Output node  2204   x  generates a correlithm object  2220   x  from the 2&#39;s place digit (e.g., “0”) in the numeric value  2208 . Output node  2204   y  generates a correlithm object  2220   y  from the 1&#39;s place digit (e.g., “1”) in the numeric value  2208 . In one embodiment, output nodes  2204   x  and  2204   y  generate random correlithm objects  2220   x  and  2220   y , respectively. In another embodiment, output nodes  2204   x  and  2204   y  generate correlithm objects  2220   x  and  2220   y  by consulting a table  2224  that correlates each digit in base two (e.g., 0, 1) to a specific, corresponding correlithm object  2220 . 
     
       
         
           
               
               
             
               
                 TABLE 2224 
               
               
                   
               
               
                 Numeric value 2208 
                 Correlithm object 2220 
               
               
                   
               
             
            
               
                 0 
                 CO 0   
               
               
                 1 
                 CO 1   
               
               
                   
               
            
           
         
       
     
     Other clusters  2206  of output nodes  2204  may be used to generate correlithm objects  2220  for digits of numeric values  2208  configured in other numeric systems (e.g., hexadecimal, octal, base three, etc.) in a similar fashion to the output nodes  2204  described above with respect to numeric values  2208  configured in base ten and base two. As described above, the input node  2202  will route the numeric value  2208  to the appropriate cluster  2206  of output nodes  2204  based on the numeric system identified in the corresponding flag  2210 . In one embodiment, an output node  2204  that operates on a hexadecimal numeric value  2208  may use the following table to generate correlithm objects  2220 . 
     
       
         
           
               
            
               
                   
               
               
                 Table for hexadecimal numeric values 
               
            
           
           
               
               
            
               
                 Numeric value 2208 
                 Correlithm object 2220 
               
               
                   
               
               
                 0 
                 CO 0   
               
               
                 1 
                 CO 1   
               
               
                 2 
                 CO 2   
               
               
                 3 
                 CO 3   
               
               
                 4 
                 CO 4   
               
               
                 5 
                 CO 5   
               
               
                 6 
                 CO 6   
               
               
                 7 
                 CO 7   
               
               
                 8 
                 CO 8   
               
               
                 9 
                 CO 9   
               
               
                 A 
                 CO A   
               
               
                 B 
                 CO B   
               
               
                 C 
                 CO C   
               
               
                 D 
                 CO D   
               
               
                 E 
                 CO E   
               
               
                 F 
                 CO F   
               
               
                   
               
            
           
         
       
     
     In one embodiment, an output node  2204  that operates on an octal numeric value  2208  may use the following table to generate correlithm objects  2220 . 
     
       
         
           
               
            
               
                   
               
               
                 Table for octal numeric values 
               
            
           
           
               
               
            
               
                 Numeric value 2208 
                 Correlithm object 2220 
               
               
                   
               
               
                 0 
                 CO 0   
               
               
                 1 
                 CO 1   
               
               
                 2 
                 CO 2   
               
               
                 3 
                 CO 3   
               
               
                 4 
                 CO 4   
               
               
                 5 
                 CO 5   
               
               
                 6 
                 CO 6   
               
               
                 7 
                 CO 7   
               
               
                   
               
            
           
         
       
     
     In a particular embodiment, system  2200  further comprises a string correlithm object engine  522  that receives each correlithm object  2220  from a corresponding output node  2204  and maps it to a corresponding sub-string correlithm object  1206  of a string correlithm object  602 . For example, in the embodiment where output nodes  2204   a  and  2204   b  generate correlithm objects  2220   a  and  2220   b , string correlithm object engine  522  maps correlithm object  2220   a  to a sub-string correlithm object  1206   a  and maps correlithm object  2220   b  to a sub-string correlithm object  1206   b . In the embodiment where output nodes  2204   x  and  2204   y  generate correlithm objects  2220   x  and  2220   y , string correlithm object engine  522  maps correlithm object  2220   x  to a sub-string correlithm object  1206   x  and maps correlithm object  2220   y  to a sub-string correlithm object  1206   y . By mapping correlithm objects  2220  to a string correlithm object  602 , the relationship between the correlithm objects  2220  may be maintained for future operations by other components described herein. 
       FIG.  23    is a schematic view of an embodiment of a correlithm object processing system  2300  that is implemented by a user device  100  to perform operations using correlithm objects  104 . The system  2300  generally comprises an input node  2302 , and a plurality of output nodes  2304 . The system  2300  may be configured with any suitable number and/or configuration of input nodes  2302  and output nodes  2304  to meet operational needs. In one embodiment, the input node  2302  and the plurality of output nodes  2304  combine to form a sensor  302  that is configured to receive a real-world data value  320  (e.g., numerical values  2308 ) and output a correlithm object  104  (e.g., correlithm object  2320 ) (e.g., as illustrated and described with respect to  FIG.  3   ). Sensor  302 , the input node  2302  and/or the output nodes  2304  may be implemented using a sensor engine  510 , as described above with respect to  FIG.  5   . As will be explained below, one or more of the input node  2302  and output nodes  2304  of system  2300  may operate in conjunction with one or more of the input node  2202  and output nodes  2204  of system  2200  illustrated in  FIG.  22   . In this way, components of systems  2200  and  2300  may be combined in a sensor  302  and interoperate to achieve enhanced functionalities. In general, input node  2302  receives a numerical value  2308  that is represented in the form of a floating point number that includes a mantissa value  2310  and an exponent value  2312 . For example, the numerical value  2308  may be represented in a base ten configuration as 6.63×10 8 . In this example, the mantissa value  2310  is “6.63” and the exponent value  2312  is “10 8 ”. In other examples, the numerical value  2308  may be represented in other numeric system configurations, including base two (binary), hexadecimal, octal, and others, that also include a mantissa value  2310  and an exponent value  2312 . System  2300  operates on numerical values  2308  that are presented in any of these different numeric system configurations. 
     Input node  2302  separates the numerical value  2308  into the mantissa value  2310  which is communicated to output node  2304   a  and the exponent value  2312  which is communicated to output node  2304   x . In one embodiment, if the mantissa value  2310  comprises a multi-digit numerical value, then input node  2302  may communicate each digit (or group of digits) of the mantissa value  2310  to separate output nodes  2304  for processing individually, similar to how system  2200  illustrated in  FIG.  22    operates. Similarly, if the exponent value  2312  comprises a multi-digit numerical value, then input node  2302  may communicate each digit (or group of digits) of the exponent value  2312  to separate output nodes  2304  for processing individually, similar to how system  2200  illustrated in  FIG.  22    operates. In one embodiment, input node  2302  may also receive a flag  2210  that indicates a particular numeric system (e.g., base ten, base two, hexadecimal, octal, etc.) associated with the corresponding numerical value  2308 . In this embodiment, input node  2302  may route the mantissa value  2310  and exponent value  2312  to the appropriate cluster of output nodes  2304  based on the particular numeric system that is identified by the corresponding flag  2210 , similar to how system  2200  illustrated in  FIG.  22    operates. 
     Output node  2304   a  receives the mantissa value  2310  from input node  2302  and generates a correlithm object  2320   a . Using the example described above, if output node  2304   a  receives “6.63” as the mantissa value  2310 , then it may generate one correlithm object  2320   a  to represent this entire value. However, in one embodiment, because “6.63” includes three digits, each digit may be communicated to three different output nodes  2304 , each of which generates one correlithm object for each corresponding digit (e.g., one correlithm object  2320  for the “6” in the 1&#39;s place; one correlithm object  2320  for the “6” in the 1/10&#39;s place; and one correlithm object  2320  for the “3” in the 1/100&#39;s place). 
     Output node  2304   x  receives the exponent value  2312  from input node  2302  and generates a correlithm object  2320   x . Using the example described above, if output node  2304   x  receives “10 8 ” as the exponent value  2312 , then it may generate one correlithm object  2320   x  to represent this entire value. However, in one embodiment, because “10 8 ” includes multiple components (e.g., base value component and power value component)/digits, each component/digit may be communicated to a corresponding output node  2304  which generates one correlithm object  2320  for each component/digit (e.g., one correlithm object  2320  for the “10” base value and one correlithm object  2320  for the “8” power value; or one correlithm object  2320  for the “1” in the base value, one correlithm object  2320  for the “0” in the base value, and one correlithm object  2320  for the “8” in the power value). 
     In one embodiment, output nodes  2304   a  and  2304   x  generate random correlithm objects  2220   a  and  2220   x , respectively. In another embodiment, output nodes  2304   a  and  2304   x  generate correlithm objects  2320   a  and  2320   x  by consulting a table  2322  that correlates each digit in the appropriate numeric system to a specific, corresponding correlithm object  2320 . For example, if the appropriate numeric system is base ten as indicated by flag  2210 , then table  2322  would be similar to table  2222  illustrated above; if the appropriate numeric system is base two as indicated by flag  2210 , then table  2322  would be similar to table  2224 ; if the appropriate numeric system is hexadecimal as indicated by flag  2210 , then table  2322  would be similar to the table for hexadecimal numeric values illustrated above; and if the appropriate numeric system is octal as indicated by flag  2210 , then table  2322  would be similar to the table for octal numeric values illustrated above. Correlithm objects  2320  described herein are particular embodiments of correlithm objects  104  described above. 
     In a particular embodiment, system  2300  further comprises a string correlithm object engine  522  that receives each correlithm object  2320  from a corresponding output node  2304  and maps it to a corresponding sub-string correlithm object  1206  of a string correlithm object  602 . For example, where output nodes  2304   a  and  2304   x  generate correlithm objects  2320   a  and  2320   x , string correlithm object engine  522  maps correlithm object  2320   a  to a sub-string correlithm object  1206   a  and maps correlithm object  2320   x  to a sub-string correlithm object  1206   x . By mapping correlithm objects  2320  to a string correlithm object  602 , the relationship between the correlithm objects  2320  may be maintained for future operations by other components described herein. 
       FIGS.  24 A and  25 A  illustrate how sub-string correlithm objects a 0 -a 9  of a first string correlithm object  602   a  and sub-string correlithm objects b 0 -b 9  of a second string correlithm object  602   b  can be used by a device  100  to perform addition ( FIG.  24 A ) and subtraction ( FIG.  25 A ) of real-world data values  320  (e.g., numerical values  2208  described above with regard to  FIG.  22   ) to/from each other, or to perform the addition ( FIG.  24 A ) and subtraction ( FIG.  25 A ) of correlithm objects  104  that represent numerical values (e.g., correlithm objects  2220  described above with regard to  FIG.  22   ) to/from each other. The sub-string correlithm objects a 0 -a 9  of the first string correlithm object  602   a  and the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b  are examples of sub-string correlithm objects  1206  described above. In particular embodiments, the sub-string correlithm objects a 0 -a 9  of the first string correlithm object  602   a  can be represented by the same length of digital word, n, (e.g., 64-bit, 128-bit, 256-bit) as the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b ; or the sub-string correlithm objects a 0 -a 9  of the first string correlithm object  602   a  can be represented by a digital word of one length, n, and the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b  can be represented by a digital word of a different length, m. Other embodiments of performing an addition and subtraction operation are described in conjunction with  FIGS.  24 B and  25 B -C. In particular,  FIG.  24 B  illustrates one embodiment of performing an addition operation with a carry;  FIG.  25 B  illustrates one embodiment of performing a subtraction operation of a larger numerical value from a smaller numerical value; and  FIG.  25 C  illustrates one embodiment of performing a subtraction operation with a borrow. 
     The first string correlithm object  602   a  includes sub-string correlithm objects a 0 -a 9  that are separated from each other by a distance  2402  in n-dimensional space  102 . The second string correlithm object  602   b  includes sub-string correlithm objects b 0 -b 9  that are separated from each other by the distance  2402  in n-dimensional space  102 . In one embodiment, the distance  2402  corresponds to one standard deviation of 
     the n-dimensional space  102 . In general, the standard deviation is equal to 
                 n   4       ,         
where ‘n’ is the number of dimensions in the n-dimensional space  102 . Thus, in an example embodiment using 64-bit sub-string correlithm objects, the standard deviation of the 64-dimensional space  102  is equal to 4 bits. This generally means that each sub-string correlithm object of a string correlithm object  602  has 4 of 64 bits that are different from each adjacent sub-string correlithm object in that string correlithm object  602 .
 
     In one embodiment, each sub-string correlithm object a 0 -a 9  and b 0 -b 9  represents a particular data value  320 , such as a particular type of real-world numerical value, according to the table below. 
     
       
         
           
               
               
               
               
             
               
                   
                   
               
               
                   
                 Sub-string correlithm 
                 Sub-string correlithm 
                   
               
               
                   
                 objects of string 
                 objects of string 
                 Real-world 
               
               
                   
                 correlithm 
                 correlithm 
                 numerical 
               
               
                   
                 object 602a 
                 object 602b 
                 values 
               
               
                   
                   
               
             
            
               
                   
                 a 0   
                 b 0   
                 0 
               
               
                   
                 a 1   
                 b 1   
                 1 
               
               
                   
                 a 2   
                 b 2   
                 2 
               
               
                   
                 a 3   
                 b 3   
                 3 
               
               
                   
                 a 4   
                 b 4   
                 4 
               
               
                   
                 a 5   
                 b 5   
                 5 
               
               
                   
                 a 6   
                 b 6   
                 6 
               
               
                   
                 a 7   
                 b 7   
                 7 
               
               
                   
                 a 8   
                 b 8   
                 8 
               
               
                   
                 a 9   
                 b 9   
                 9 
               
               
                   
                   
               
            
           
         
       
     
     Each of string correlithm objects  602   a  and  602   b  is a “linear” string correlithm object  602 , which means that the n-dimensional distance  2402  between each sub-string of the first string correlithm object  602   a  is the same (e.g., n-dimensional distance  2402  between a 0  and a 1  is the same as the n-dimensional distance  2402  between a 1  and a 2 ; n-dimensional distance  2402  between a 1  and a 2  is the same as the n-dimensional distance  2402  between a 2  and a 3 ; and so on), and the n-dimensional distance  2402  between each sub-string of the second string correlithm object  602   b  is the same (e.g., n-dimensional distance  2402  between b 0  and b 1  is the same as the n-dimensional distance  2402  between b 1  and b 2 ; n-dimensional distance  2402  between b 1  and b 2  is the same as the n-dimensional distance  2402  between b 2  and b 3 ; and so on). In one embodiment, the sub-string correlithm objects of a linear string correlithm object  602  (e.g.,  602   a ,  602   b ,  602   c ,  602   aa ,  602   aaa , and  602   cc  as described below) are arranged non-linearly in n-dimensional space  102 . In other words, the path from one sub-string correlithm object to the next does not form a straight line for the entirety of the string correlithm object  602 . In this embodiment, however, the sub-string correlithm objects of the linear string correlithm object  602  can be mapped to linearly spaced positions in a row of a table. Each row of the table can be used to map a different string correlithm object  602 . The rows of that table can then be aligned in the ways described below to perform the various addition and subtraction operations. In another embodiment, the sub-string correlithm objects of a linear string correlithm object  602  are actually arranged linearly in n-dimensional space  102 . In this embodiment, the linear string correlithm objects  602  themselves are aligned in the ways described below to perform the various addition and subtraction operations. 
     First and second string correlithm objects  602   a  and  602   b  can be stored in memory  504 . Furthermore, string correlithm object engine  522  can implement and process string correlithm objects  602   a  and  602   b . In a particular embodiment, arithmetic engine  524  of computer architecture  500  illustrated in  FIG.  5    executes arithmetic instructions  526  to implement a node  2400  to perform the addition process using string correlithm objects  602   a  and  602   b  described in conjunction with  FIG.  24 A , and to implement a node  2500  to perform the subtraction process using string correlithm objects  602   a  and  602   b  described in conjunction with  FIG.  25 A . 
     Referring to  FIG.  24 A , an example addition operation will be described with respect to first and second string correlithm objects  602   a  and  602   b  in n-dimensional space  102 . At the outset, node  2400  receives the real-world numerical values  2410   a  and  2410   b  that will be added together using string correlithm objects  602   a  and  602   b . As an example, assume that the first real-world numerical value  2410   a  is “1” and that the second real-world numerical value  2410   b  is “2”. As is known, the result of adding “1” and “2” is “3”. Pursuant to the table illustrated above, the first real-world numerical value  2410   a  of “1” is mapped to sub-string correlithm object al of first string correlithm object  602   a , and the second real-world numerical value  2410   b  of “2” is mapped to sub-string correlithm object b 2  of second string correlithm object  602   b . In one embodiment, node  2400  may receive correlithm objects  104  that represent the numerical values to be added together instead of the real-world numerical values themselves. In this way, the entire process of addition performed by node  2400  using string correlithm objects  602   a  and  602   b  can be performed in n-dimensional space  102  using correlithm objects  104 , such that node  2400  facilitates homomorphic computing. Homomorphic computing offers a way to perform computations in a distributed setting or in the cloud thereby addressing many of the technical problems associated with storing, moving, and converting data back and forth between real-world values and correlithm objects  104 . 
     Node  2400  aligns in n-dimensional space  102  the first string correlithm object  602   a  with the second string correlithm object  602   b  (or aligns the rows of a table to which the sub-string correlithm objects of those string correlithm objects  602   a  and  602   b  are mapped, as described above), as illustrated in  FIG.  24 A , such that sub-string correlithm object al from first string correlithm object  602   a  (which corresponds to the first real-world numerical value of “1” received by node  2400 ) aligns in n-dimensional space  102  with a sub-string correlithm object b 0  from the second string correlithm object  602   b  that corresponds to the real-world numerical value of “0”. Also as illustrated in  FIG.  24 A , in one embodiment, when the first string correlithm object  602   a  is aligned with the second string correlithm object  602   b , the first string correlithm object  602   a  is positioned parallel to the second string correlithm object  602   b  in n-dimensional space  102 . Node  2400  then identifies sub-string correlithm object b 2  (which corresponds to the second real-world numerical value of “2” received by node  2400 ) in second string correlithm object  602   b . Next, node  2400  determines which sub-string correlithm object from the first string correlithm object  602   a  aligns in n-dimensional space  102  with the sub-string correlithm object b 2  from the second string correlithm object  602   b  (as indicated by arrow  2412 ). As illustrated in  FIG.  24 A , the sub-string correlithm object b 2  of second string correlithm object  602   b  aligns in n-dimensional space  102  with sub-string correlithm object a 3  of first string correlithm object  602   a . As sub-string correlithm object a 3  represents the real-world numerical value of “3” and the result of adding “1” and “2” is “3”, the node  2400  has successfully used string correlithm objects  602   a  and  602   b  to perform addition in n-dimensional space  102 . Node  2400  outputs the sub-string correlithm object a 3  from the first string correlithm object  602   a  as output correlithm object  2414 . 
       FIG.  24 B  illustrates how sub-string correlithm objects a 0 -a 9  . . . a 0 -a 9  of a first string correlithm object  602   aa , sub-string correlithm objects b 0 -b 9  of second string correlithm object  602   b , and sub-string correlithm objects c 0 -c 1  of a third string correlithm object  602   c  can be used by a device  100  to perform addition with carry of real-world data values  320  (e.g., numerical values  2208  described above with regard to  FIG.  22   ), or to perform the addition with carry of correlithm objects  104  that represent numerical values (e.g., correlithm objects  2220  described above with regard to  FIG.  22   ). The sub-string correlithm objects a 0 -a 9  a 0 -a 9  of the first string correlithm object  602   aa , the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b , and the sub-string correlithm objects c 0 -c 1  of the third string correlithm object  602   c  are examples of sub-string correlithm objects  1206  described above. In particular embodiments, the sub-string correlithm objects a 0 -a 9  . . . a 0 -a 9  of the first string correlithm object  602   aa , the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b , and the sub-string correlithm objects c 0 -c 1  of a third string correlithm object  602   c  can be represented by the same or different length of digital word (e.g., 64-bit, 128-bit, 256-bit). 
     The sub-string correlithm objects a 0 -a 9  . . . a 0 -a 9  of the first string correlithm object  602   aa , the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b , and the sub-string correlithm objects c 0 -c 1  of the third string correlithm object  602   c  are each separated from each other in their respective string correlithm object  602  by a distance  2402  in n-dimensional space  102 . In one embodiment, the distance  2402  corresponds to one standard deviation of the n-dimensional space  102 . Thus, in an example embodiment using 64-bit sub-string correlithm objects, the standard deviation of the 64-dimensional space  102  is equal to 4 bits. This generally means that each sub-string correlithm object of a string correlithm object  602   aa ,  602   b , and  602   c  has 4 of 64 bits that are different from each adjacent sub-string correlithm object in that string correlithm object  602 . 
     In one embodiment, each sub-string correlithm object a 0 -a 9  a 0 -a 9 , b 0 -b 9 , and c 0 -c 1  represents a particular data value  320 , such as a particular type of real-world numerical value, according to the table below. 
     
       
         
           
               
               
               
               
             
               
                   
               
               
                 Sub-string correlithm 
                 Sub-string correlithm 
                 Sub-string correlithm 
                   
               
               
                 objects of string 
                 objects of string 
                 objects of string 
                 Real-world 
               
               
                 correlithm 
                 correlithm 
                 correlithm 
                 numerical 
               
               
                 object 602aa 
                 object 602b 
                 object 602c 
                 values 
               
               
                   
               
             
            
               
                 a 0   
                 b 0   
                 c 0   
                 0 
               
               
                 a 1   
                 b 1   
                 c 1   
                 1 
               
               
                 a 2   
                 b 2   
                   
                 2 
               
               
                 a 3   
                 b 3   
                   
                 3 
               
               
                 a 4   
                 b 4   
                   
                 4 
               
               
                 a 5   
                 b 5   
                   
                 5 
               
               
                 a 6   
                 b 6   
                   
                 6 
               
               
                 a 7   
                 b 7   
                   
                 7 
               
               
                 a 8   
                 b 8   
                   
                 8 
               
               
                 a 9   
                 b 9   
                   
                 9 
               
               
                   
               
            
           
         
       
     
     Each of string correlithm objects  602   aa ,  602   b , and  602   c  is a “linear” string correlithm object  602 , which means that the n-dimensional distance  2402  between each sub-string of the first string correlithm object  602   aa  is the same (e.g., n-dimensional distance  2402  between a 0  and a 1  is the same as the n-dimensional distance  2402  between a 1  and a 2 ; n-dimensional distance  2402  between a 1  and a 2  is the same as the n-dimensional distance  2402  between a 2  and a 3 ; and so on); and the n-dimensional distance  2402  between each sub-string of the second string correlithm object  602   b  is the same (e.g., n-dimensional distance  2402  between b 0  and b 1  is the same as the n-dimensional distance  2402  between b 1  and b 2 ; n-dimensional distance  2402  between b 1  and b 2  is the same as the n-dimensional distance  2402  between b 2  and b 3 ; and so on). 
     First, second, and third string correlithm objects  602   aa ,  602   b , and  602   c  can be stored in memory  504 . Furthermore, string correlithm object engine  522  can implement and process string correlithm objects  602   aa ,  602   b , and  602   c . In a particular embodiment, arithmetic engine  524  of computer architecture  500  illustrated in  FIG.  5    executes arithmetic instructions  526  to implement a node  2400  to perform the addition with carry process using string correlithm objects  602   aa ,  602   b , and  602   c.    
     An example addition with carry operation will be described with respect to first, second, and third string correlithm objects  602   aa ,  602   b , and  602   c  in n-dimensional space  102 . At the outset, node  2400  receives the real-world numerical values  2410   a  and  2410   b  that will be added together using string correlithm objects  602   aa ,  602   b , and  602   c . As an example, assume that the first real-world numerical value  2410   a  is “7” and that the second real-world numerical value  2410   b  is “9”. As is known, the result of adding “7” and “9” is “16,” which represents a “6” in the 1&#39;s place and a carry of “1” in the 10&#39;s place. The operation below performs this addition with carry using string correlithm objects  602 . Pursuant to the table illustrated above, the first real-world numerical value  2410   a  of “7” is mapped to sub-string correlithm object a 7  of first string correlithm object  602   aa , and the second real-world numerical value  2410   b  of “9” is mapped to sub-string correlithm object b 9  of second string correlithm object  602   b . In one embodiment, node  2400  may receive correlithm objects  104  that represent the numerical values to be added together instead of the real-world numerical values themselves. In this way, the entire process of addition performed by node  2400  using string correlithm objects  602   aa ,  602   b , and  602   c  can be performed in n-dimensional space  102  using correlithm objects  104 , such that node  2400  facilitates homomorphic computing. 
     Node  2400  aligns in n-dimensional space  102  the first string correlithm object  602   aa  with the second string correlithm object  602   b  and the third string correlithm object  602   c  (or aligns the rows of a table to which the sub-string correlithm objects of those string correlithm objects  602   aa ,  602   b , and  602   c  are mapped, as described above), as illustrated in  FIG.  24 B , such that sub-string correlithm object a 7  from first string correlithm object  602   aa  (which corresponds to the first real-world numerical value of “7” received by node  2400 ) aligns in n-dimensional space  102  with a sub-string correlithm object b 0  from the second string correlithm object  602   b  that corresponds to the real-world numerical value of “0”. Also as illustrated in  FIG.  24 B , in one embodiment, when the first string correlithm object  602   aa  is aligned with the second string correlithm object  602   b  and the third string correlithm object  602   c , the first string correlithm object  602   aa  is positioned parallel to the second string correlithm object  602   b  and the third string correlithm object  602   c  in n-dimensional space  102 . Node  2400  then identifies sub-string correlithm object b 9  (which corresponds to the second real-world numerical value of “9” received by node  2400 ) in second string correlithm object  602   b . Next, node  2400  determines which sub-string correlithm object from the first string correlithm object  602   aa  aligns in n-dimensional space  102  with the sub-string correlithm object b 9  from the second string correlithm object  602   b  (as indicated by arrow  2412   a ), and which sub-string correlithm object from the third string correlithm object  602   c  aligns in n-dimensional space  102  with the sub-string correlithm object b 9  from the second string correlithm object  602   b  (as indicated by arrow  2412   b ). As illustrated in  FIG.  24 B , the sub-string correlithm object b 9  of second string correlithm object  602   b  aligns in n-dimensional space  102  with sub-string correlithm object a 6  of first string correlithm object  602   aa , and with sub-string correlithm object c 1  of third string correlithm object  602   c . As sub-string correlithm object c 1  represents the real-world numerical value of “1” in the 10&#39;s place, and sub-string correlithm object a 6  represents the real-world numerical value of “6” in the 1&#39;s place, and the result of adding “7” and “9” is “16”, the node  2400  has successfully used string correlithm objects  602   aa ,  602   b , and  602   c  to perform addition with carry in n-dimensional space  102 . Node  2400  outputs the sub-string correlithm object a 6  from the first string correlithm object  602   aa  as output correlithm object  2414   a , and the sub-string correlithm object c 1  from the third string correlithm object  602   c  as output correlithm object  2414   b . These two output correlithm objects  2414  may be subsequently used by other components in the system(s) described herein. 
     Referring to  FIG.  25 A , an example subtraction operation will be described with respect to first and second string correlithm objects  602   a  and  602   b  in n-dimensional space  102 . At the outset, node  2500  receives the real-world numerical values  2510   a  and  2510   b  for the subtraction operation using string correlithm objects  602   a  and  602   b . As an example, assume that the first real-world numerical value  2510   a  is “3” and that the second real-world numerical value  2510   b  is “2” (and the subtraction operation to be performed by node  2500  is “3−2=1”). Pursuant to the table illustrated above with respect to  FIG.  24 A , the first real-world numerical value  2510   a  of “3” is mapped to sub-string correlithm object a 3  of first string correlithm object  602   a , and the second real-world numerical value  2510   b  of “2” is mapped to sub-string correlithm object b 2  of second string correlithm object  602   b . In one embodiment, node  2500  may receive correlithm objects  104  that represent the numerical values to be subtracted instead of the real-world numerical values themselves. In this way, the entire process of subtraction performed by node  2500  using string correlithm objects  602   a  and  602   b  can be performed in n-dimensional space  102  using correlithm objects  104  to facilitate homomorphic computing. 
     Node  2500  aligns in n-dimensional space  102  the first string correlithm object  602   a  with the second string correlithm object  602   b  (or aligns the rows of a table to which the sub-string correlithm objects of those string correlithm objects  602   a  and  602   b  are mapped, as described above), as illustrated in  FIG.  25 A , such that sub-string correlithm object a 3  from first string correlithm object  602   a  (which corresponds to the first real-world numerical value of “3” received by node  2500 ) aligns in n-dimensional space  102  with a sub-string correlithm object b 2  from the second string correlithm object  602   b  (which corresponds to the second real-world numerical value of “2”). Also as illustrated in  FIG.  25 A , in one embodiment, when the first string correlithm object  602   a  is aligned with the second string correlithm object  602   b , the first string correlithm object  602   a  is positioned parallel to the second string correlithm object  602   b  in n-dimensional space  102 . Node  2500  then identifies sub-string correlithm object b 0  that corresponds to a numerical value of “0” in second string correlithm object  602   b . Next, node  2500  determines which sub-string correlithm object from the first string correlithm object  602   a  aligns in n-dimensional space  102  with the sub-string correlithm object b 0  from the second string correlithm object  602   b  (as indicated by arrow  2512 ). As illustrated in  FIG.  25 A , the sub-string correlithm object b 0  of second string correlithm object  602   b  aligns in n-dimensional space  102  with sub-string correlithm object a 1  of first string correlithm object  602   a . As sub-string correlithm object a 1  represents the real-world numerical value of “1” and the result of subtracting “2” from “3” is “1” (i.e., “3−2=1”), the node  2500  has successfully used string correlithm objects  602   a  and  602   b  to perform subtraction in n-dimensional space  102 . Node  2500  outputs the sub-string correlithm object a 1  from the first string correlithm object  602   a  as output correlithm object  2514 . 
       FIG.  25 B  illustrates how sub-string correlithm objects a 9 -a 1  . . . a 0 -a 9  of a first string correlithm object  602   aaa  and sub-string correlithm objects b 0 -b 9  of second string correlithm object  602   b  can be used by a device  100  to perform subtraction of a larger real-world data value  320  (e.g., numerical values  2208  described above with regard to  FIG.  22   ) from a smaller real-world data value  320 , or to perform subtraction of a larger numerical value from a smaller numerical value where those numerical values are represented by correlithm objects  104  (e.g., correlithm objects  2220  described above with regard to  FIG.  22   ). The sub-string correlithm objects a 9 -a 1  . . . a 0 -a 9  of the first string correlithm object  602   aaa  and the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b  are examples of sub-string correlithm objects  1206  described above. In particular embodiments, the sub-string correlithm objects a 9 -a 1  . . . a 0 -a 9  of the first string correlithm object  602   aaa  and the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b  can be represented by the same or different length of digital word (e.g., 64-bit, 128-bit, 256-bit). Note that the underline used for “a 9 -a 1 ” denotes a negative value, as indicated in the table below. 
     The sub-string correlithm objects a 9 -a 1  . . . a 0 -a 9  of the first string correlithm object  602   aaa  and the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b  are each separated from each other in their respective string correlithm object  602  by a distance  2402  in n-dimensional space  102 . In one embodiment, the distance  2402  corresponds to one standard deviation of the n-dimensional space  102 . Thus, in an example embodiment using 64-bit sub-string correlithm objects, the standard deviation of the 64-dimensional space  102  is equal to 4 bits. This generally means that each sub-string correlithm object of a string correlithm object  602   aaa  and  602   b  has 4 of 64 bits that are different from each adjacent sub-string correlithm object in that string correlithm object  602 . In one embodiment, each sub-string correlithm object a 9 -a 1  . . . a 0 -a 9  and b 0 -b 9  represents a particular data value  320 , such as a particular type of real-world numerical value, according to the table below. 
     
       
         
           
               
               
               
               
             
               
                   
                   
               
               
                   
                 Sub-string correlithm 
                 Sub-string correlithm 
                   
               
               
                   
                 objects of string 
                 objects of string 
                 Real-world 
               
               
                   
                 correlithm 
                 correlithm 
                 numerical 
               
               
                   
                 object 602aaa 
                 object 602b 
                 values 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
            
               
                   
                 
                   a 9   
                 
                   
                 −9 
               
               
                   
                 
                   a 8   
                 
                   
                 −8 
               
               
                   
                 
                   a 7   
                 
                   
                 −7 
               
               
                   
                 
                   a 6   
                 
                   
                 −6 
               
               
                   
                 
                   a 5   
                 
                   
                 −5 
               
               
                   
                 
                   a 4   
                 
                   
                 −4 
               
               
                   
                 
                   a 3   
                 
                   
                 −3 
               
               
                   
                 
                   a 2   
                 
                   
                 −2 
               
               
                   
                 
                   a 1   
                 
                   
                 −1 
               
               
                   
                 a 0   
                 b 0   
                 0 
               
               
                   
                 a 1   
                 b 1   
                 1 
               
               
                   
                 a 2   
                 b 2   
                 2 
               
               
                   
                 a 3   
                 b 3   
                 3 
               
               
                   
                 a 4   
                 b 4   
                 4 
               
               
                   
                 a 5   
                 b 5   
                 5 
               
               
                   
                 a 6   
                 b 6   
                 6 
               
               
                   
                 a 7   
                 b 7   
                 7 
               
               
                   
                 a 8   
                 b 8   
                 8 
               
               
                   
                 a 9   
                 b 9   
                 9 
               
               
                   
                   
               
            
           
         
       
     
     Each of string correlithm objects  602   aaa  and  602   b  is a “linear” string correlithm object  602 , which means that the n-dimensional distance  2402  between each sub-string of the first string correlithm object  602   aaa  is the same (e.g., n-dimensional distance  2402  between a 0  and a 1  is the same as the n-dimensional distance  2402  between a 1  and a 2 ; n-dimensional distance  2402  between a 1  and a 2  is the same as the n-dimensional distance  2402  between a 2  and a 3 ; and so on); and the n-dimensional distance  2402  between each sub-string of the second string correlithm object  602   b  is the same (e.g., n-dimensional distance  2402  between b 0  and b 1  is the same as the n-dimensional distance  2402  between b 1  and b 2 ; n-dimensional distance  2402  between b 1  and b 2  is the same as the n-dimensional distance  2402  between b 2  and b 3 ; and so on). 
     First and second string correlithm objects  602   aaa  and  602   b  can be stored in memory  504 . Furthermore, string correlithm object engine  522  can implement and process string correlithm objects  602   aaa  and  602   b . In a particular embodiment, arithmetic engine  524  of computer architecture  500  illustrated in  FIG.  5    executes arithmetic instructions  526  to implement a node  2500  to perform the subtraction of a larger numerical value from a smaller numerical value using string correlithm objects  602   aaa  and  602   b.    
     An example subtraction of a larger numerical value from a smaller numerical value operation will be described with respect to first and second string correlithm objects  602   aaa  and  602   b  in n-dimensional space  102 . At the outset, node  2500  receives the real-world numerical values  2510   a  and  2510   b  for the subtraction operation using string correlithm objects  602   aaa  and  602   b . As an example, assume that the first real-world numerical value  2510   a  is “2” and that the second real-world numerical value  2510   b  is “3” (and the subtraction operation to be performed by node  2500  is “2−3=−1”). Pursuant to the table illustrated above with respect to  FIG.  25 B , the first real-world numerical value  2510   a  of “2” is mapped to sub-string correlithm object a 2  of first string correlithm object  602   aaa , and the second real-world numerical value  2510   b  of “3” is mapped to sub-string correlithm object b 3  of second string correlithm object  602   b . In one embodiment, node  2500  may receive correlithm objects  104  that represent the numerical values to be subtracted instead of the real-world numerical values themselves. In this way, the entire process of subtraction performed by node  2500  using string correlithm objects  602   aaa  and  602   b  can be performed in n-dimensional space  102  using correlithm objects  104  to facilitate homomorphic computing. 
     Node  2500  aligns in n-dimensional space  102  the first string correlithm object  602   aaa  with the second string correlithm object  602   b  (or aligns the rows of a table to which the sub-string correlithm objects of those string correlithm objects  602   aaa  and  602   b  are mapped, as described above), as illustrated in  FIG.  25 B , such that sub-string correlithm object a 2  from first string correlithm object  602   a  (which corresponds to the first real-world numerical value of “2” received by node  2500 ) aligns in n-dimensional space  102  with a sub-string correlithm object b 3  from the second string correlithm object  602   b  (which corresponds to the second real-world numerical value of “3”). Also as illustrated in  FIG.  25 B , in one embodiment, when the first string correlithm object  602   aaa  is aligned with the second string correlithm object  602   b , the first string correlithm object  602   aaa  is positioned parallel to the second string correlithm object  602   b  in n-dimensional space  102 . Node  2500  then identifies sub-string correlithm object b 0  that corresponds to a numerical value of “0” in second string correlithm object  602   b . Next, node  2500  determines which sub-string correlithm object from the first string correlithm object  602   aaa  aligns in n-dimensional space  102  with the sub-string correlithm object b 0  from the second string correlithm object  602   b  (as indicated by arrow  2512 ). As illustrated in  FIG.  25 B , the sub-string correlithm object b 0  of second string correlithm object  602   b  aligns in n-dimensional space  102  with sub-string correlithm object a 1  of first string correlithm object  602   aaa . As sub-string correlithm object al represents the real-world numerical value of “−1” and the result of subtracting “3” from “2” is “−1” (i.e., “2−3=−1”), the node  2500  has successfully used string correlithm objects  602   aaa  and  602   b  to perform subtraction in n-dimensional space  102 . Node  2500  outputs the sub-string correlithm object al from the first string correlithm object  602   aaa  as output correlithm object  2514 . 
       FIG.  25 C  illustrates how sub-string correlithm objects a 0 -a 9  a 0 -a 9  of a first string correlithm object  602   aa , sub-string correlithm objects b 0 -b 9  of second string correlithm object  602   b , and sub-string correlithm objects c 0 -c 1  of a third string correlithm object  602   cc  can be used by a device  100  to perform subtraction with borrow of real-world data values  320  (e.g., numerical values  2208  described above with regard to  FIG.  22   ), or to perform subtraction with borrow of numerical values where those numerical values are represented by correlithm objects  104  (e.g., correlithm objects  2220  described above with regard to  FIG.  22   ). The sub-string correlithm objects a 0 -a 9  . . . a 0 -a 9  of the first string correlithm object  602   aa , the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b , and the sub-string correlithm objects c 0 -c 1  of the third string correlithm object  602   cc  are examples of sub-string correlithm objects  1206  described above. In particular embodiments, the sub-string correlithm objects a 0 -a 9  a 0 -a 9  of the first string correlithm object  602   aa , the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b , and the sub-string correlithm objects c 0 -c 1  of a third string correlithm object  602   cc  can be represented by the same or different length of digital word (e.g., 64-bit, 128-bit, 256-bit). Note that the underline used for “c 1 ” denotes a negative value, as indicated in the table below. 
     The sub-string correlithm objects a 0 -a 9  . . . a 0 -a 9  of the first string correlithm object  602   aa , the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   b , and the sub-string correlithm objects c 0 -c 1  of the third string correlithm object  602   cc  are each separated from each other in their respective string correlithm object  602  by a distance  2402  in n-dimensional space  102 . Thus, in an example embodiment using 64-bit sub-string correlithm objects, the standard deviation of the 64-dimensional space  102  is equal to 4 bits. This generally means that each sub-string correlithm object of a string correlithm object  602   aa ,  602   b , and  602   cc  has 4 of 64 bits that are different from each adjacent sub-string correlithm object in that string correlithm object  602 . 
     In one embodiment, each sub-string correlithm object a 0 -a 9  . . . a 0 -a 9 , b 0 -b 9 , and c 0 -c 1  represents a particular data value  320 , such as a particular type of real-world numerical value, according to the table below. 
     
       
         
           
               
               
               
               
             
               
                   
               
               
                 Sub-string correlithm 
                 Sub-string correlithm 
                 Sub-string correlithm 
                   
               
               
                 objects of string 
                 objects of string 
                 objects of string 
                 Real-world 
               
               
                 correlithm 
                 correlithm 
                 correlithm 
                 numerical 
               
               
                 object 602aa 
                 object 602b 
                 object 602cc 
                 values 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
            
               
                   
                   
                 
                   c 1   
                 
                 −1 
               
               
                 a 0   
                 b 0   
                 c 0   
                 0 
               
               
                 a 1   
                 b 1   
                   
                 1 
               
               
                 a 2   
                 b 2   
                   
                 2 
               
               
                 a 3   
                 b 3   
                   
                 3 
               
               
                 a 4   
                 b 4   
                   
                 4 
               
               
                 a 5   
                 b 5   
                   
                 5 
               
               
                 a 6   
                 b 6   
                   
                 6 
               
               
                 a 7   
                 b 7   
                   
                 7 
               
               
                 a 8   
                 b 8   
                   
                 8 
               
               
                 a 9   
                 b 9   
                   
                 9 
               
               
                   
               
            
           
         
       
     
     Each of string correlithm objects  602   aa ,  602   b , and  602   cc  is a “linear” string correlithm object  602 , which means that the n-dimensional distance  2402  between each sub-string of the first string correlithm object  602   aa  is the same (e.g., n-dimensional distance  2402  between a 0  and a 1  is the same as the n-dimensional distance  2402  between a 1  and a 2 ; n-dimensional distance  2402  between a 1  and a 2  is the same as the n-dimensional distance  2402  between a 2  and a 3 ; and so on); and the n-dimensional distance  2402  between each sub-string of the second string correlithm object  602   b  is the same (e.g., n-dimensional distance  2402  between b 0  and b 1  is the same as the n-dimensional distance  2402  between b 1  and b 2 ; n-dimensional distance  2402  between b 1  and b 2  is the same as the n-dimensional distance  2402  between b 2  and b 3 ; and so on). 
     First, second, and third string correlithm objects  602   aa ,  602   b , and  602   cc  can be stored in memory  504 . Furthermore, string correlithm object engine  522  can implement and process string correlithm objects  602   aa ,  602   b , and  602   cc . In a particular embodiment, arithmetic engine  524  of computer architecture  500  illustrated in  FIG.  5    executes arithmetic instructions  526  to implement a node  2500  to perform the subtraction with carry process using string correlithm objects  602   aa ,  602   b , and  602   cc.    
     An example subtraction with borrow operation will be described with respect to first, second, and third string correlithm objects  602   aa ,  602   b , and  602   cc  in n-dimensional space  102 . At the outset, node  2500  receives the real-world numerical values  2510   a   1 ,  2510   a   10 , and  2510   b  for the subtraction operation using string correlithm objects  602   aa ,  602   b , and  602   cc . As an example, assume that the subtraction operation to be performed by node  2500  is “12−3=9”. In this case, the first real-world numerical value  2510   a   1  represents the 1′s place digit in the number “12” and is therefore “2”, and the second real-world numerical value  2510   a   10  represents the 10&#39;s place digit in the number “12” and is therefore “1”. In this case, the third real-world numerical value  2510   b  represents “3”. Pursuant to the table illustrated above with respect to  FIG.  25 C , the first real-world numerical value  2510   a   1  of “2” is mapped to sub-string correlithm object a 2  of first string correlithm object  602   aa , and the third real-world numerical value  2510   b  of “3” is mapped to sub-string correlithm object b 3  of second string correlithm object  602   b . In one embodiment, node  2500  may receive correlithm objects  104  that represent the numerical values to be subtracted instead of the real-world numerical values themselves. In this way, the entire process of subtraction performed by node  2500  using string correlithm objects  602   aa ,  602   b , and  602   cc  can be performed in n-dimensional space  102  using correlithm objects  104  to facilitate homomorphic computing. 
     Node  2500  aligns in n-dimensional space  102  the first string correlithm object  602   aa  with the second string correlithm object  602   b  and the third sub-string correlithm object  602   cc  (or aligns the rows of a table to which the sub-string correlithm objects of those string correlithm objects  602   aa ,  602   b , and  602   cc  are mapped, as described above), as illustrated in  FIG.  25 C , such that sub-string correlithm object a 2  from first string correlithm object  602   aa  (which corresponds to the first real-world numerical value of “2” in the 1&#39;s place of “12” received by node  2500 ) aligns in n-dimensional space  102  with a sub-string correlithm object b 3  from the second string correlithm object  602   b  (which corresponds to the third real-world numerical value of “3”). Also as illustrated in  FIG.  25 C , in one embodiment, when the first string correlithm object  602   aa  is aligned with the second string correlithm object  602   b  and the third sub-string correlithm object  602   cc , the first string correlithm object  602   aa  is positioned parallel to the second string correlithm object  602   b  and the third sub-string correlithm object  602   cc  in n-dimensional space  102 . Node  2500  then identifies sub-string correlithm object b 0  that corresponds to a numerical value of “0” in second string correlithm object  602   b . Next, node  2500  determines which sub-string correlithm object from the first string correlithm object  602   aa  aligns in n-dimensional space  102  with the sub-string correlithm object b 0  from the second string correlithm object  602   b  (as indicated by arrow  2512   a ), and which sub-string correlithm object from the third string correlithm object  602   cc  aligns in n-dimensional space  102  with the sub-string correlithm object b 0  from the second string correlithm object  602   b  (as indicated by arrow  2512   b ). As illustrated in  FIG.  25 C , the sub-string correlithm object b 0  of second string correlithm object  602   b  aligns in n-dimensional space  102  with sub-string correlithm object a 9  of first string correlithm object  602   aa , and with sub-string correlithm object c 1  of third sub-string correlithm object  602   cc.    
     As sub-string correlithm object a 9  represents the real-world numerical value of “9” in the 1&#39;s place, and the result of subtracting “3” from “12” is “9”, the node  2500  has successfully used string correlithm objects  602   aa ,  602   b , and  602   cc  to perform subtraction with borrow in n-dimensional space  102 . In addition, as sub-string correlithm object c 1  represents the real-world numerical value of “−1” as a borrow, node  2500  has successfully applied a borrow from the 10&#39;s place digit of “1” to perform the subtraction operation described above. Node  2500  outputs the sub-string correlithm object a 9  from the first string correlithm object  602   aa  as output correlithm object  2514   a , and the sub-string correlithm object c 1  from the third string correlithm object  602   cc  as output correlithm object  2514   b . These two output correlithm objects  2514  together with the second real-world numerical value  2510   a   10  may be subsequently used by other components described herein. For example, output correlithm object  2514   b  representing a “−1” and second real-world numerical value  2510   a   10  representing a “1” in the 10&#39;s place may be communicated to another component, such as node  2400 , to perform the addition of “1” and “−1” to result in a “0” in the 10&#39;s place digit of the answer to the equation “12−3=9”. Of course, the sub-string correlithm object a 9  from the first string correlithm object  602   aa  represents the “9” in the 1&#39;s place of the answer to the equation “12−3=9”. 
     If the subtraction with borrow operation was being performed on the equation “22−3=19” for example, then the node  2500  would output sub-string correlithm object a 9  from the first string correlithm object  602   aa  as output correlithm object  2514   a ; sub-string correlithm object c 1  from the third string correlithm object  602   cc  as output correlithm object  2514   b ; and a second real-world numerical value  2510   a   10  representing a “2” in the 10&#39;s place. In that example, output correlithm object  2514   b  representing a “−1” and second real-world numerical value  2510   a   10  representing a “2” in the 10&#39;s place may be communicated to another component, such as node  2400 , to perform the addition of “2” and “−1” to result in a “1” in the 10&#39;s place digit of the answer to the equation “22−3=19”. Of course, the sub-string correlithm object a 9  from the first string correlithm object  602   aa  represents the “9” in the 1&#39;s place of the answer to the equation “22−3=9”. 
       FIGS.  26  and  27    illustrate how sub-string correlithm objects a 0 -a 9  of a first string correlithm object  602   x  and sub-string correlithm objects b 0 -b 9  of a second string correlithm object  602   y  can be used by a device  100  to perform multiplication ( FIG.  26   ) and division ( FIG.  27   ) of real-world data values  320  (e.g., numerical values  2208  described above with regard to  FIG.  22   ) with each other, or to perform the multiplication ( FIG.  26   ) and division ( FIG.  27   ) of correlithm objects  104  that represent numerical values (e.g., correlithm objects  2220  described above with regard to  FIG.  22   ) with each other. The sub-string correlithm objects a 0 -a 9  of the first string correlithm object  602   x  and the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   y  are examples of sub-string correlithm objects  1206  described above. In particular embodiments, the sub-string correlithm objects a 0 -a 9  of the first string correlithm object  602   x  can be represented by the same length of digital word, n, (e.g., 64-bit, 128-bit, 256-bit) as the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   y ; or the sub-string correlithm objects a 0 -a 9  of the first string correlithm object  602   x  can be represented by a digital word of one length, n, and the sub-string correlithm objects b 0 -b 9  of the second string correlithm object  602   y  can be represented by a digital word of a different length, m. 
     The first string correlithm object  602   x  includes sub-string correlithm objects a 0 -a 9  that are separated from each other by logarithmic distances  2702  in n-dimensional space  102 . The second string correlithm object  602   y  includes sub-string correlithm objects b 0 -b 9  that are separated from each other by logarithmic distances  2702  in n-dimensional space  102 . In one embodiment, the logarithmic distances  2702  are proportional to one or more standard deviations of the n-dimensional space  102 . Thus, in an example embodiment using 64-bit sub-string correlithm objects, the standard deviation of the 64-dimensional space  102  is equal to 4 bits. 
     In one embodiment, each sub-string correlithm object a 0 -a 9  and b 0 -b 9  represents a particular data value  320 , such as a particular type of real-world numerical value, according to the table below. 
     
       
         
           
               
               
               
               
               
             
               
                   
               
               
                   
                   
                   
                   
                 Proportional 
               
               
                   
                   
                   
                   
                 n-dimensional 
               
               
                   
                   
                   
                   
                 distance between 
               
               
                 Sub-string 
                 Sub-string 
                   
                   
                 a sub-string 
               
               
                 correlithm 
                 correlithm 
                   
                   
                 correlithm object 
               
               
                 objects of string 
                 objects of string 
                 Real-world 
                 Real-world 
                 and a subsequent 
               
               
                 correlithm 
                 correlithm 
                 numerical 
                 numerical 
                 sub-string 
               
               
                 object 602x 
                 object 602y 
                 values 
                 values 
                 correlithm object 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
            
               
                 a 1   
                 b 1   
                 0 
                 log (1) 
                 0.30103 
               
               
                 a 2   
                 b 2   
                 0.30103 
                 log (2) 
                 0.17582 
               
               
                 a 3   
                 b 3   
                 0.47712 
                 log (3) 
                 0.12494 
               
               
                 a 4   
                 b 4   
                 0.60206 
                 log (4) 
                 0.09691 
               
               
                 a 5   
                 b 5   
                 0.69897 
                 log (5) 
                 0.07918 
               
               
                 a 6   
                 b 6   
                 0.77815 
                 log (6) 
                 0.06694 
               
               
                 a 7   
                 b 7   
                 0.84509 
                 log (7) 
                 0.05800 
               
               
                 a 8   
                 b 8   
                 0.90309 
                 log (8) 
                 0.05115 
               
               
                 a 9   
                 b 9   
                 0.95424 
                 log (9) 
                 — 
               
               
                   
               
            
           
         
       
     
     Each of string correlithm objects  602   x  and  602   y  is a “log” string correlithm object  602 , which means that the n-dimensional distances  2702  between each sub-string of the first string correlithm object  602   x  and the subsequent sub-string of the first string correlithm object  602   x  is proportional to the difference between the logarithmic values of the corresponding real-world values represented by a particular sub-string (e.g., n-dimensional distance  2702   a  between al and a 2  is proportional to log(2)-log(1); n-dimensional distance  2702   b  between a 2  and a 3  is proportional to log(3)-log(2); n-dimensional distance  2702   c  between a 3  and a 4  is proportional to log(4)-log(3); and so on), and the n-dimensional distances  2702  between each sub-string of the second string correlithm object  602   y  and the subsequent sub-string of the second string correlithm object  602   y  is proportional to the difference between the logarithmic values of the corresponding real-world values represented by a particular sub-string (e.g., n-dimensional distance  2702   a  between b 1  and b  2  is proportional to log(2)-log(1); n-dimensional distance  2702   b  between b 2  and b 3  is proportional to log(3)-log(2); n-dimensional distance  2702   c  between b 3  and b 4  is proportional to log(4)-log(3); and so on). In one embodiment, the sub-string correlithm objects of a log string correlithm object  602  (e.g.,  602   x  and  602   y  as described herein) are arranged non-linearly in n-dimensional space  102 . In other words, the path from one sub-string correlithm object to the next does not form a straight line for the entirety of the string correlithm object  602 . In this embodiment, however, the sub-string correlithm objects of the log string correlithm object  602  can be mapped to linearly spaced positions in a row of a table. Each row of the table can be used to map a different string correlithm object  602 . The rows of that table can then be aligned in the ways described below to perform the various multiplication and division operations. In another embodiment, the sub-string correlithm objects of a log string correlithm object  602  are actually arranged linearly in n-dimensional space  102 . In this embodiment, the log string correlithm objects  602  themselves are aligned in the ways described below to perform the various multiplication and division operations. 
     First and second string correlithm objects  602   x  and  602   y  can be stored in memory  504 . Furthermore, string correlithm object engine  522  can implement and process string correlithm objects  602   x  and  602   y . In a particular embodiment, arithmetic engine  524  of computer architecture  500  illustrated in  FIG.  5    executes arithmetic instructions  526  to implement a node  2600  to perform the multiplication process using string correlithm objects  602   x  and  602   y  described in conjunction with  FIG.  26   , and to implement a node  2700  to perform the division process using string correlithm objects  602   x  and  602   y  described in conjunction with  FIG.  27   . 
     Referring to  FIG.  26   , an example multiplication operation will be described with respect to first and second string correlithm objects  602   x  and  602   y  in n-dimensional space  102 . At the outset, node  2600  receives the real-world numerical values  2610   a  and  2610   b  that will be multiplied together using string correlithm objects  602   x  and  602   y . As an example, assume that the first real-world numerical value  2610   a  is “2” and that the second real-world numerical value  2610   b  is “3”. Pursuant to the table illustrated above, the first real-world numerical value  2610   a  of “2” is mapped to sub-string correlithm object a 2  of first string correlithm object  602   x  as log(2), and the second real-world numerical value  2610   b  of “3” is mapped to sub-string correlithm object b 3  of second string correlithm object  602   y  as log(3). In one embodiment, node  2600  may receive correlithm objects  104  that represent the numerical values to be multiplied instead of the real-world numerical values themselves. In this way, the entire process of multiplication performed by node  2600  using string correlithm objects  602   x  and  602   y  can be performed in n-dimensional space  102  using correlithm objects  104 , such that node  2600  facilitates homomorphic computing. 
     Node  2600  aligns in n-dimensional space  102  the first string correlithm object  602   x  with the second string correlithm object  602   y  (or aligns the rows of a table to which the sub-string correlithm objects of those string correlithm objects  602   x  and  602   y  are mapped, as described above), as illustrated in  FIG.  26   , such that sub-string correlithm object a 2  from first string correlithm object  602   x  (which corresponds to the logarithm of the first real-world numerical value of “2” received by node  2600 ) aligns in n-dimensional space  102  with a sub-string correlithm object b 1  from the second string correlithm object  602   y  that corresponds to the logarithm of the real-world numerical value of “1”. Also as illustrated in  FIG.  26   , in one embodiment, when the first string correlithm object  602   x  is aligned with the second string correlithm object  602   y , the first string correlithm object  602   x  is positioned parallel to the second string correlithm object  602   y  in n-dimensional space  102 . Node  2600  then identifies sub-string correlithm object b 3  (which corresponds to the logarithm of the second real-world numerical value of “3” received by node  2600 ) in second string correlithm object  602   y . Next, node  2600  determines which sub-string correlithm object from the first string correlithm object  602   x  aligns in n-dimensional space  102  with the sub-string correlithm object b 3  from the second string correlithm object  602   y  (as indicated by arrow  2612 ). As illustrated in  FIG.  26   , the sub-string correlithm object b 3  of second string correlithm object  602   y  aligns in n-dimensional space  102  with sub-string correlithm object a 6  of first string correlithm object  602   x . As sub-string correlithm object a 6  represents the logarithm of the real-world numerical value of “6” and the result of multiplying “2” and “3” is “6”, the node  2600  has successfully used string correlithm objects  602   x  and  602   y  to perform multiplication in n-dimensional space  102 . Node  2600  outputs the sub-string correlithm object a 6  from the first string correlithm object  602   x  as output correlithm object  2614 . 
     Referring to  FIG.  27   , an example division operation will be described with respect to first and second string correlithm objects  602   x  and  602   y  in n-dimensional space  102 . At the outset, node  2700  receives the real-world numerical values  2710   a  and  2710   b  that will be used in the division operation using string correlithm objects  602   x  and  602   y . As an example, assume that the first real-world numerical value  2710   a  is “6” and that the second real-world numerical value  2710   b  is “3” (to perform “6±3=2”). Pursuant to the table illustrated above, the first real-world numerical value  2710   a  of “6” is mapped to sub-string correlithm object a 6  of first string correlithm object  602   x  as log(6), and the second real-world numerical value  2710   b  of “3” is mapped to sub-string correlithm object b 3  of second string correlithm object  602   y  as log(3). In one embodiment, node  2700  may receive correlithm objects  104  that represent the numerical values to be divided instead of the real-world numerical values themselves. In this way, the entire process of division performed by node  2700  using string correlithm objects  602   x  and  602   y  can be performed in n-dimensional space  102  using correlithm objects  104 , such that node  2700  facilitates homomorphic computing. 
     Node  2700  aligns in n-dimensional space  102  the first string correlithm object  602   x  with the second string correlithm object  602   y  (or aligns the rows of a table to which the sub-string correlithm objects of those string correlithm objects  602   x  and  602   y  are mapped, as described above), as illustrated in  FIG.  27   , such that sub-string correlithm object a 6  from first string correlithm object  602   x  (which corresponds to the logarithm of the first real-world numerical value of “6” received by node  2700 ) aligns in n-dimensional space  102  with sub-string correlithm object b 3  from the second string correlithm object  602   y  (which corresponds to the logarithm of the second real-world numerical value of “3” received by node  2700 ). Also as illustrated in  FIG.  27   , in one embodiment, when the first string correlithm object  602   x  is aligned with the second string correlithm object  602   y , the first string correlithm object  602   x  is positioned parallel to the second string correlithm object  602   y  in n-dimensional space  102 . Node  2700  then identifies sub-string correlithm object b 1  (which corresponds to the logarithm of the real-world numerical value of “1”) in second string correlithm object  602   y . Next, node  2700  determines which sub-string correlithm object from the first string correlithm object  602   x  aligns in n-dimensional space  102  with the sub-string correlithm object b 1  from the second string correlithm object  602   y  (as indicated by arrow  2712 ). As illustrated in  FIG.  27   , the sub-string correlithm object b 1  of second string correlithm object  602   y  aligns in n-dimensional space  102  with sub-string correlithm object a 2  of first string correlithm object  602   x . As sub-string correlithm object a 2  represents the logarithm of the real-world numerical value of “2” and the result of dividing “6” by “3” is “2”, the node  2700  has successfully used string correlithm objects  602   x  and  602   y  to perform division in n-dimensional space  102 . Node  2700  outputs the sub-string correlithm object a 2  from the first string correlithm object  602   x  as output correlithm object  2714 . 
       FIG.  28    illustrates how sub-string correlithm objects a 1 -a 10  of a first string correlithm object  602   xx  and sub-string correlithm objects b 10 -b 1  of a second string correlithm object  602   yy  can be used by a device  100  to perform inversion of real-world data values  320  (e.g., numerical values  2208  described above with regard to  FIG.  22   ), or to perform the inversion of correlithm objects  104  that represent numerical values (e.g., correlithm objects  2220  described above with regard to  FIG.  22   ). The sub-string correlithm objects a 1 -a 10  of the first string correlithm object  602   xx  and the sub-string correlithm objects b 10 -b 1  of the second string correlithm object  602   yy  are examples of sub-string correlithm objects  1206  described above. In particular embodiments, the sub-string correlithm objects a 1 -a 10  of the first string correlithm object  602   xx  can be represented by the same length of digital word, n, (e.g., 64-bit, 128-bit, 256-bit) as the sub-string correlithm objects b 10 -b 1  of the second string correlithm object  602   yy ; or the sub-string correlithm objects a 1 -a 10  of the first string correlithm object  602   xx  can be represented by a digital word of one length, n, and the sub-string correlithm objects b 10 -b 1  of the second string correlithm object  602   yy  can be represented by a digital word of a different length, m. 
     The first string correlithm object  602   xx  includes sub-string correlithm objects a 1 -a 10  that are separated from each other by logarithmic distances  2702  in n-dimensional space  102 . The second string correlithm object  602   yy  includes sub-string correlithm objects b 10 -b 1  that are separated from each other by logarithmic distances  2702  in n-dimensional space  102 . In one embodiment, the logarithmic distances  2702  are proportional to one or more standard deviations of the n-dimensional space  102 . Thus, in an example embodiment using 64-bit sub-string correlithm objects, the standard deviation of the 64-dimensional space  102  is equal to 4 bits. 
     In one embodiment, each sub-string correlithm object a 1 -a 10  and b 10 -b 1  represents a particular data value  320 , such as a particular type of real-world numerical value, according to the table below. 
     
       
         
           
               
               
               
               
               
             
               
                   
               
               
                   
                   
                   
                   
                 Proportional 
               
               
                   
                   
                   
                   
                 n-dimensional 
               
               
                   
                   
                   
                   
                 distance between 
               
               
                 Sub-string 
                 Sub-string 
                   
                   
                 a sub-string 
               
               
                 correlithm 
                 correlithm 
                   
                   
                 correlithm object 
               
               
                 objects of string 
                 objects of string 
                 Real-world 
                 Real-world 
                 and a subsequent 
               
               
                 correlithm 
                 correlithm 
                 numerical 
                 numerical 
                 sub-string 
               
               
                 object 602xx 
                 object 602yy 
                 values 
                 values 
                 correlithm object 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
            
               
                 a 1   
                 b 1   
                 0 
                 log (1) 
                 0.30103 
               
               
                 a 2   
                 b 2   
                 0.30103 
                 log (2) 
                 0.17582 
               
               
                 a 3   
                 b 3   
                 0.47712 
                 log (3) 
                 0.12494 
               
               
                 a 4   
                 b 4   
                 0.60206 
                 log (4) 
                 0.09691 
               
               
                 a 5   
                 b 5   
                 0.69897 
                 log (5) 
                 0.07918 
               
               
                 a 6   
                 b 6   
                 0.77815 
                 log (6) 
                 0.06694 
               
               
                 a 7   
                 b 7   
                 0.84509 
                 log (7) 
                 0.05800 
               
               
                 a 8   
                 b 8   
                 0.90309 
                 log (8) 
                 0.05115 
               
               
                 a 9   
                 b 9   
                 0.95424 
                 log (9) 
                 — 
               
               
                   
               
            
           
         
       
     
     Each of string correlithm objects  602   xx  and  602   yy  is a “log” string correlithm object  602 , which means that the n-dimensional distances  2702  between each sub-string of the first string correlithm object  602   xx  and the subsequent sub-string of the first string correlithm object  602   xx  is proportional to the difference between the logarithmic values of the corresponding real-world values represented by a particular sub-string (e.g., n-dimensional distance  2702   a  between al and a 2  is proportional to log(2)-log(1); n-dimensional distance  2702   b  between a 2  and a 3  is proportional to log(3)-log(2); n-dimensional distance  2702   c  between a 3  and a 4  is proportional to log(4)-log(3); and so on), and the n-dimensional distances  2702  between each sub-string of the second string correlithm object  602   yy  and the subsequent sub-string of the second string correlithm object  602   yy  is proportional to the difference between the logarithmic values of the corresponding real-world values represented by a particular sub-string (e.g., n-dimensional distance  2702   a  between b 1  and b  2  is proportional to log(2)-log(1); n-dimensional distance  2702   b  between b 2  and b 3  is proportional to log(3)-log(2); n-dimensional distance  2702   c  between b 3  and b 4  is proportional to log(4)-log(3); and so on). In one embodiment, the sub-string correlithm objects of a log string correlithm object  602  (e.g.,  602   xx  and  602   yy  as described herein) are arranged non-linearly in n-dimensional space  102 . In other words, the path from one sub-string correlithm object to the next does not form a straight line for the entirety of the string correlithm object  602 . In this embodiment, however, the sub-string correlithm objects of the log string correlithm object  602  can be mapped to linearly spaced positions in a row of a table. Each row of the table can be used to map a different string correlithm object  602 . The rows of that table can then be aligned in the ways described below to perform the inversion operation. In another embodiment, the sub-string correlithm objects of a log string correlithm object  602  are actually arranged linearly in n-dimensional space  102 . In this embodiment, the log string correlithm objects  602  themselves are aligned in the ways described below to perform the inversion operation. 
     First and second string correlithm objects  602   xx  and  602   yy  can be stored in memory  504 . Furthermore, string correlithm object engine  522  can implement and process string correlithm objects  602   xx  and  602   yy . In a particular embodiment, arithmetic engine  524  of computer architecture  500  illustrated in  FIG.  5    executes arithmetic instructions  526  to implement a node  2800  to perform the inversion process using string correlithm objects  602   xx  and  602   yy  described in conjunction with  FIG.  28   . 
     Referring to  FIG.  28   , an example inversion operation will be described with respect to first and second string correlithm objects  602   xx  and  602   yy  in n-dimensional space  102 . At the outset, node  2800  receives a real-world numerical value  2810   a  that will be used in the inversion operation using string correlithm objects  602   xx  and  602   yy . As an example, assume that the real-world numerical value  2810   a  is “5” and that the inversion operation is to perform 1/n or, in this example, 1/5. Pursuant to the table illustrated above, the real-world numerical value  2810  of “5” is mapped to sub-string correlithm object a 5  of first string correlithm object  602   xx  as log(5). In one embodiment, node  2800  may receive a correlithm object  104  that represents the numerical value to be inverted instead of the real-world numerical value itself. In this way, the entire process of inversion performed by node  2800  using string correlithm objects  602   xx  and  602   yy  can be performed in n-dimensional space  102  using correlithm objects  104 , such that node  2800  facilitates homomorphic computing. 
     Node  2800  aligns in n-dimensional space  102  the first string correlithm object  602   xx  with the second string correlithm object  602   yy  (or aligns the rows of a table to which the sub-string correlithm objects of those string correlithm objects  602   xx  and  602   yy  are mapped, as described above), as illustrated in  FIG.  28   , such that sub-string correlithm object al from first string correlithm object  602   xx  aligns in n-dimensional space  102  with sub-string correlithm object bio from the second string correlithm object  602   yy ; and sub-string correlithm object a 10  from first string correlithm object  602   xx  aligns in n-dimensional space  102  with sub-string correlithm object b 1  from the second string correlithm object  602   yy . Also as illustrated in  FIG.  28   , in one embodiment, when the first string correlithm object  602   xx  is aligned with the second string correlithm object  602   yy , the first string correlithm object  602   xx  is positioned parallel to the second string correlithm object  602   yy  in n-dimensional space  102 . 
     Node  2800  then identifies sub-string correlithm object a 5  (which corresponds to the logarithm of the real-world numerical value of “5”) in first string correlithm object  602   xx . Next, node  2800  determines which sub-string correlithm object from the second string correlithm object  602   yy  aligns in n-dimensional space  102  with the sub-string correlithm object a 5  from the first string correlithm object  602   xx  (as indicated by arrow  2812 ). As illustrated in  FIG.  28   , the sub-string correlithm object b 2  of second string correlithm object  602   yy  aligns in n-dimensional space  102  with sub-string correlithm object a 5  of first string correlithm object  602   xx . Node  2800  outputs the sub-string correlithm object b 2  from the second string correlithm object  602   yy  as output correlithm object  2814 . Node  2800  then shifts each digit of the sub-string correlithm object b 2  of second correlithm object  602   yy  to the right by one positional digit (which corresponds to moving the decimal point in 2.0 to the left by one place to create . 2 ). Thus, the value of “2.0” becomes “0.2”. Node  2800  outputs the sub-string correlithm object  1206  representing the value “0.2” as output correlithm object  2816 . As sub-string correlithm object a 5  represents the logarithm of the real-world numerical value of “5” and the result of inverting “5” results in “0.2”, the node  2800  has successfully used string correlithm objects  602   xx  and  602   yy  to perform inversion in n-dimensional space  102 . In a particular embodiment, node  2800  can consult a table to perform the positional shift of digits from output correlithm object  2814  (e.g., “2.0”) to generate output correlithm object  2816  (e.g., “0.2”). An example of such a table is illustrated below: 
     
       
         
           
               
               
               
             
               
                   
                   
               
               
                   
                 Output correlithm object 2814 
                 Output correlithm object 2816 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
               
               
            
               
                   
                 b 10   
                 1 
               
               
                   
                 b 9   
                 .9 
               
               
                   
                 b 8   
                 .8 
               
               
                   
                 b 7   
                 .7 
               
               
                   
                 b 6   
                 .6 
               
               
                   
                 b 5   
                 .5 
               
               
                   
                 b 4   
                 .4 
               
               
                   
                 b 3   
                 .3 
               
               
                   
                 b 2   
                 .2 
               
               
                   
                 b 1   
                 .1 
               
               
                   
                   
               
            
           
         
       
     
     In a particular embodiment, if the real-world numerical value  2810  that is received by node  2800  corresponds to a position between sub-string correlithm objects in string correlithm object  602   yy , then node  2800  interpolates an appropriate value for the output correlithm object  2814 . For example, if the real-world numerical value  2810  is “3” then the corresponding position to a 3  in first string correlithm object  602   xx  is between b 4  and b 3  in second string correlithm object  602   yy . In this particular example, node  2800  interpolates a value of “3.3” between b 4  and b 3  for output correlithm object  2814 . Node  2800  then shifts the digits of the output correlithm object  2814  to the right by one positional digit to generate an output correlithm object  2816  representing a value of “0.33” which is the inverse of the real-world numerical value  2810  of “3” received by node  2800 . Similarly, if the real-world numerical value  2810  that is received by node  2800  falls between any of the sub-string correlithm objects a 1 -a 10  of first string correlithm object  602   xx , then node  2800  identifies a position in n-dimensional space  102  on second string correlithm object  602   yy  that aligns with the position of the real-world numerical value  2810  in the first string correlithm object  602   xx . For example, if the real-world numerical value  2810  that is received by node  2800  is “1.25”, which falls between al and a 2  in first string correlithm object  602   xx , then node  2800  determines that this position aligns with b 8  in the second string correlithm object  602   yy , which is output as output correlithm object  2814 . Node  2800  then shifts the digits of the output correlithm object  2814  to the right by one positional digit to generate an output correlithm object  2816  representing a value of “0.8” which is the inverse of the real-world numerical value  2810  of “1.25” received by node  2800 . Node  2800  may also perform an inversion operation using string correlithm object  602   xx  and  602   yy  where the real-world numerical value  2810  received by node  2800  lies in a position between sub-string correlithm objects of first string correlithm object  602   xx , and the position to which this value aligns in second string correlithm object  602   yy  also lies between sub-string correlithm objects of second string correlithm object  602   yy . This is done by expanding the number of sub-string correlithm objects representing real-world numerical values in both first string correlithm object  602   xx  and second string correlithm object  602   yy , thereby creating a greater resolution of positions in n-dimensional space  102  represented by sub-string correlithm objects. 
     While several embodiments have been provided in the present disclosure, it should be understood that the disclosed systems and methods might be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein. For example, the various elements or components may be combined or integrated in another system or certain features may be omitted, or not implemented. 
     In addition, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as coupled or directly coupled or communicating with each other may be indirectly coupled or communicating through some interface, device, or intermediate component whether electrically, mechanically, or otherwise. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein. 
     To aid the Patent Office, and any readers of any patent issued on this application in interpreting the claims appended hereto, applicants note that they do not intend any of the appended claims to invoke 35 U.S.C. § 112(f) as it exists on the date of filing hereof unless the words “means for” or “step for” are explicitly used in the particular claim.