A matrix-processor-based device comprising a matrix processor comprising a positive partial sum accumulator and a negative partial sum accumulator, the matrix processor (144 - 144) configured to: for each pair of a first floating-point operand and a second floating-point operand of a plurality of pairs of floating-point operands when calculating a dot product: determine a sign of an intermediate product of the first floating-point operand and the second floating-point operand, indicating whether the intermediate product is positive or negative; normalize the intermediate product with a partial sum fraction comprising one of a fraction of the positive partial sum accumulator and a fraction of the negative partial sum accumulator based on the sign of the intermediate product; and add the intermediate product to one of the positive partial sum accumulator and the negative partial sum accumulator based on the sign of the intermediate product; at the end of calculating the dot product, subtract a value of the negative partial sum accumulator from a value of the positive partial sum accumulator to generate a final sum; and renormalize the final sum, wherein renormalize the final sum comprises to shift a binary representation of the final sum to the left until the leading "1" of the binary representation has been shifted out. for each pair of a first floating-point operand and a second floating-point operand of a plurality of pairs of floating-point operands when calculating a dot product: determine a sign of an intermediate product of the first floating-point operand and the second floating-point operand, indicating whether the intermediate product is positive or negative; normalize the intermediate product with a partial sum fraction comprising one of a fraction of the positive partial sum accumulator and a fraction of the negative partial sum accumulator based on the sign of the intermediate product; and add the intermediate product to one of the positive partial sum accumulator and the negative partial sum accumulator based on the sign of the intermediate product; at the end of calculating the dot product, subtract a value of the negative partial sum accumulator from a value of the positive partial sum accumulator to generate a final sum; and determine a sign of an intermediate product of the first floating-point operand and the second floating-point operand, indicating whether the intermediate product is positive or negative; normalize the intermediate product with a partial sum fraction comprising one of a fraction of the positive partial sum accumulator and a fraction of the negative partial sum accumulator based on the sign of the intermediate product; and add the intermediate product to one of the positive partial sum accumulator and the negative partial sum accumulator based on the sign of the intermediate product; at the end of calculating the dot product, subtract a value of the negative partial sum accumulator from a value of the positive partial sum accumulator to generate a final sum; and renormalize the final sum, wherein renormalize the final sum comprises to shift a binary representation of the final sum to the left until the leading "1" of the binary representation has been shifted out.