Ejemplo n.º 1
0
char	*my_modulo(char *n1, char *n2)
{
    t_div *d;

    d = init_my_mod(n1, n2);
    if ((d != NULL) && (my_str_isnum(d->dvd) == 1) && (my_str_isnum(d->dvs) == 1))
        if (d->dvs[0] != '0')
        {
            while (d->dvd[0] != '-')
            {
                if ((my_do_op_sub_cmp(d->dvs, d->dvd, 0, 0) == 0) &&
                        (d->mod[0] == '0'))
                    my_strcpy(d->mod, d->dvd);
                my_strcpy(d->temp_cmp, d->dvs);
                my_strcpy(d->temp_fact, "1");
                while (my_do_op_sub_cmp(d->temp_cmp, d->dvd, 0, 0) == 1)
                    add_zero(d);
                (check_digits(d) == 1) ? (add_zero(d)) : (1);
                remove_zero(d);
                if (check_digits(d) == 1)
                    d->temp_fact = add_sub(d->temp_fact, "-1");
                get_minus(d->temp_cmp);
                d->total = add_sub(d->total, d->temp_fact);
                d->dvd = add_sub(d->dvd, d->temp_cmp);
            }
            free(d);
            return (check_neg(d, d->mod, 2, 0));
        }
        else
            my_putstr(DIV_0);
    return (0);
}
Ejemplo n.º 2
0
void Graph_Completer::run()
{
    stopped_ = false;

    //clock_t t0 = clock();
    compute_convex_hull();
    /*clock_t t1 = clock();
    std::cout << "Convex hull points: (computed in " << (t1 - t0)*1.0/CLOCKS_PER_SEC << "s)" << std::endl;
    unsigned int i;
    for (i=0; i<convex_hull_.size(); i++)
    {
        std::cout << convex_hull_[i] + 1 << " ";
    }
    std::cout << std::endl;*/

    //clock_t t2 = clock();
    complete_triangulation();
    /*clock_t t3 = clock();
    std::cout << "Triangulated in " << (t3 - t2)*1.0/CLOCKS_PER_SEC << "s, ";*/

    if (!stopped_)
    {
        add_zero();
        sort_everything();
    }

    /*clock_t t4 = clock();
    std::cout << "added zero in " << (t4 - t3)*1.0/CLOCKS_PER_SEC << "s" << std::endl;*/

    return;
}
Ejemplo n.º 3
0
void add(char *_1,char *_2,char *r)
{
  char one[10000],two[10000],res[10000];
  strcpy(one,_1);
  strcpy(two,_2);
  if(strlen(one)<strlen(two))
    swap(one,two);

  int len=strlen(one);
  if(len!=strlen(two))
    add_zero((len-strlen(two)),two);

  int i,result=0,carry=0;
  for(i=0; i<len; i++)
    {
      result=one[i]-48+two[i]-48+carry;
      res[i]=(result%10)+48;
      carry=result/10;
    }
  if(carry)
    res[i++]=carry+48;
  res[i]='\0';

  strcpy(r,res);
}
Ejemplo n.º 4
0
int main(void)
{
	{
	float zerof       = 0.0f;
	float minus_zerof = -0.0f;
	assert(!bitwise_equalf(zerof, minus_zerof));

	/* some constant folding */
	assert(bitwise_equalf(minus_zerof + 20.f, 20.f));
	assert(bitwise_equalf(minus_zerof + zerof, zerof));
	assert(bitwise_equalf(zerof + minus_zerof, zerof));
	assert(bitwise_equalf(zerof + zerof, zerof));
	assert(bitwise_equalf(minus_zerof + minus_zerof, minus_zerof));
	/* ensure optimisation did not mess up */
	assert(!bitwise_equalf(add_zerof(minus_zerof), minus_zerof));
	assert(bitwise_equalf(add_minus_zerof(minus_zerof), minus_zerof));
	assert(bitwise_equalf(add_minus_zerof(zerof), zerof));
	assert(bitwise_equalf(sub_zerof(minus_zerof), minus_zerof));
	assert(bitwise_equalf(sub_minus_zerof(minus_zerof), zerof));
	}

	{
	double zero       = 0.0;
	double minus_zero = -0.0;
	assert(!bitwise_equal(zero, minus_zero));

	/* some constant folding */
	assert(!bitwise_equal(zero, minus_zero));
	assert(bitwise_equal(minus_zero + 20., 20.));
	assert(bitwise_equal(minus_zero + zero, zero));
	assert(bitwise_equal(zero + minus_zero, zero));
	assert(bitwise_equal(zero + zero, zero));
	assert(bitwise_equal(minus_zero + minus_zero, minus_zero));
	/* ensure optimisation did not mess up */
	assert(!bitwise_equal(add_zero(minus_zero), minus_zero));
	assert(bitwise_equal(add_minus_zero(minus_zero), minus_zero));
	assert(bitwise_equal(add_minus_zero(zero), zero));
	assert(bitwise_equal(sub_zero(minus_zero), minus_zero));
	assert(bitwise_equal(sub_minus_zero(minus_zero), zero));
	}

	return 0;
}
Ejemplo n.º 5
0
  ///////////////////////////////////////////
  //
  //  Public
  //
  ///////////////////////////////////////////
  char * const Bignum::to_s() {
    int pos = 0, tmp = bignum_len - 1;

    if (bignum[bignum_len - bignum_used_len()] < 0) {
      cache[0] = '-';
      pos += 1;
    }

    for (int i = 0; i < bignum_len; i++) {
      if (bignum[i] != 0 || i == tmp) {
        pos += int64_to_str(bignum[i], cache + pos);

        for (int j = i + 1; j < bignum_len; j++) {
          int64_to_str(bignum[j], cache + pos);
          add_zero(cache + pos);
          pos += LONG_LEN;
        }

        break;
      }
    }

    return cache;
  }
Ejemplo n.º 6
0
void	finish_little_hexa(t_tmp_arg *tmp, t_params *params,
				  unsigned int s_to_add,
				  unsigned int s_to_print)
{
  if (params->less == 1)
  {
    if (params->hash == 1 && tmp->uint != 0)
      my_putstr("0x");
    my_put_unsigned_nb(tmp->uint, s_to_print, "0123456789abcdef");
  }
  if (params->width >= params->precision && params->zero == 1
      && params->is_precision == 0 && params->less == 0
      && params->width > (int)s_to_print)
    add_zero(s_to_add);
  else if (params->width >= (params->precision) &&
	   params->width > (int)s_to_print)
    add_space(s_to_add);
  if (params->less == 0)
  {
    if (params->hash == 1 && tmp->uint != 0)
      my_putstr("0x");
    my_put_unsigned_nb(tmp->uint, s_to_print, "0123456789abcdef");
  }
}
Ejemplo n.º 7
0
void Graph_Completer::complete_maximal_graph()
{
    add_zero();
    sort_everything();
    return;
}