# Redefining arithmetic operations

The last topic that we're going to examine is how to define basic arithmetic operations on assignments. In particular, we'll examine how to perform arithmetic operations on two `NumericGrade`

objects and how to add a set of values to a `NumericGrade`

object. This can be done in the R environment by extending one of the sets of generic groups that is used to collect similar operations. The different groups include the `Arith`

, `Compare`

, `Ops`

, `Logic`

, `Math`

, `Math2`

, `Summary`

, and `Complex`

groups. The `Ops`

group includes the `Arith`

, `Compare`

, and `Logic`

operations, and we extend this group to include objects from the `NumericGrades`

class.

We use the `setMethod`

function for the `Ops`

group to define operations involving `NumericGrade`

objects. The resulting function obtains the grades and performs the requisite operation using the `callGeneric`

command. The quirk of the system is that it must return a `NumericGrade`

object, and the last step is to set the value of the grades...