add reduction.c