void init_bigfloat_variables() {

  bigfloat_pool_idx = 0;

  tmp = make_biginteger();
  row = make_biginteger();
  tmp2 = make_biginteger();
  tmp3 = make_biginteger();
  tmp4 = make_biginteger();

  // some primitive bigfloat numbers used as constants

  ZERO = make_and_init_bigfloat(0, 0);
  ONE = make_and_init_bigfloat(1, 1);
  TWO = make_and_init_bigfloat(2, 1);
  ONE_HALF = make_and_init_bigfloat(5, 0);
  NEG_ONE = make_and_init_bigfloat(1, 1);
  set_sign(NEG_ONE, 1);
  INFINITY = make_and_init_bigfloat(1, 308);

  // following three used by add subtract multiply and divide

  bigfloat_temp = make_and_init_bigfloat(0, 0);
  bigfloat_temp2 = make_and_init_bigfloat(0, 0);
  bigfloat_temp3 = make_and_init_bigfloat(0, 0);

  // general purpose

  bigfloat_temp4 = make_and_init_bigfloat(0, 0);
  bigfloat_temp5 = make_and_init_bigfloat(0, 0);
  bigfloat_temp6 = make_and_init_bigfloat(0, 0);

  precision_error = make_and_init_bigfloat(1, -(PRECISION - 2));

  floor_temp = make_and_init_bigfloat(0, 0);
  floor_temp2 = make_and_init_bigfloat(0, 0);
  floor_temp3 = make_and_init_bigfloat(0, 0);
  ceiling_temp = make_and_init_bigfloat(0, 0);
  ceiling_temp2 = make_and_init_bigfloat(0, 0);
  ceiling_temp3 = make_and_init_bigfloat(0, 0);
  round_temp = make_and_init_bigfloat(0, 0);
  round_temp2 = make_and_init_bigfloat(0, 0);
  round_temp3 = make_and_init_bigfloat(0, 0);

// following used to find out how to set BIGFLOAT_POOL_SIZE
//printf("%d", bigfloat_pool_idx);
//writeln();
//exit(0);

  return;
}
