void calc_mult_numbers(calc_t *calc) { calc_t result; size_t max_len = calc->nbr1->len + calc->nbr2->len; result.nbr1 = number_create(max_len); result.nbr2 = number_create(max_len); result.bistro = calc->bistro; if (calc_cmp_numbers(calc) > 0) calc_swap_numbers(calc); calc_mult_add(calc, &result); calc->result = result.nbr2; if (calc->nbr1->is_neg != calc->nbr2->is_neg) calc->result->is_neg = 1; }
number_ref number_create_long_long (long long val) { struct number *self = number_create (); self->long_long_val = val; self->number_type = number_object_long_long; }
number_ref number_create_int (int val) { struct number *self = number_create (); self->int_val = val; self->number_type = number_object_int; }
number_ref number_create_short (short val) { struct number *self = number_create (); self->char_val = val; self->number_type = number_object_char; }
number_ref number_create_double (double val) { struct number *self = number_create (); self->double_val = val; self->number_type = number_object_double; }
number_ref number_create_float (float val) { struct number *self = number_create (); self->float_val = val; self->number_type = number_object_float; }