A memristive cross product engine, comprising: a crossbar array of memristive memory elements comprising: a number of row lines; a number of column lines perpendicular to the row lines; a number of memristive memory elements, wherein a memristive memory element is located at each intersection of a row line and a column line; means for applying a programming voltage to change a resistance value of the memory element, the resistance value representing a respective entry in a skew symmetric matrix representing a first vector; means for applying an input voltage applied along each row line, the input voltage representing a dimensional component of a second vector; a differential amplifier; the memristive cross product engine being characterized by: a sensor located at each column line to measure an output voltage along the column line, wherein the output voltage is generated by applying input voltages received by memristive memory elements located along the row line to resistance values of the respective memory elements; the differential amplifier being connected to pairs of sensors to collate measured output voltages for respective pairs of column lines to generate dimensional components of the cross product of the first vector and the second vector; and the crossbar array having a diagonal which does not contain any memristor elements. a crossbar array of memristive memory elements comprising: a number of row lines; a number of column lines perpendicular to the row lines; a number of memristive memory elements, wherein a memristive memory element is located at each intersection of a row line and a column line; means for applying a programming voltage to change a resistance value of the memory element, the resistance value representing a respective entry in a skew symmetric matrix representing a first vector; means for applying an input voltage applied along each row line, the input voltage representing a dimensional component of a second vector; a differential amplifier; a number of row lines; a number of column lines perpendicular to the row lines; a number of memristive memory elements, wherein a memristive memory element is located at each intersection of a row line and a column line; means for applying a programming voltage to change a resistance value of the memory element, the resistance value representing a respective entry in a skew symmetric matrix representing a first vector; means for applying an input voltage applied along each row line, the input voltage representing a dimensional component of a second vector; a differential amplifier; the memristive cross product engine being characterized by: a sensor located at each column line to measure an output voltage along the column line, wherein the output voltage is generated by applying input voltages received by memristive memory elements located along the row line to resistance values of the respective memory elements; the differential amplifier being connected to pairs of sensors to collate measured output voltages for respective pairs of column lines to generate dimensional components of the cross product of the first vector and the second vector; and the crossbar array having a diagonal which does not contain any memristor elements. a sensor located at each column line to measure an output voltage along the column line, wherein the output voltage is generated by applying input voltages received by memristive memory elements located along the row line to resistance values of the respective memory elements; the differential amplifier being connected to pairs of sensors to collate measured output voltages for respective pairs of column lines to generate dimensional components of the cross product of the first vector and the second vector; and the crossbar array having a diagonal which does not contain any memristor elements.