void M_free_all_pow() { if (M_size_flag != 0) { m_apm_free(M_last_xx_input); m_apm_free(M_last_xx_log); M_size_flag = 0; } }
void M_free_all_add() { if (M_add_firsttime == FALSE) { m_apm_free(M_work1); m_apm_free(M_work2); M_add_firsttime = TRUE; } }
void M_free_all_exp() { if (MM_firsttime1 == FALSE) { m_apm_free(MM_exp_log2R); m_apm_free(MM_exp_512R); MM_firsttime1 = TRUE; } }
void M_free_all_rnd() { if (M_firsttime2 == FALSE) { m_apm_free(M_rnd_aa); m_apm_free(M_rnd_mm); m_apm_free(M_rnd_XX); m_apm_free(M_rtmp0); m_apm_free(M_rtmp1); M_firsttime2 = TRUE; } }
void M_free_all_div() { if (M_div_firsttime == FALSE) { m_apm_free(M_div_worka); m_apm_free(M_div_workb); m_apm_free(M_div_tmp7); m_apm_free(M_div_tmp8); m_apm_free(M_div_tmp9); M_div_firsttime = TRUE; } }
static int Bgc(lua_State *L) { M_APM a=Bget(L,1); m_apm_free(a); lua_pushnil(L); lua_setmetatable(L,1); return 0; }
void M_free_all_fmul() { int k; if (M_firsttimef == FALSE) { m_apm_free(M_ain); m_apm_free(M_bin); for (k=0; k < M_STACK_SIZE; k++) { if (mul_stack_data_size[k] != 0) { MAPM_FREE(mul_stack_data[k]); } } M_firsttimef = TRUE; } }
void m_apm_cpp_precision(int digits) { if (MM_lc_PI_digits == 0) { m_apm_free(m_apm_init()); } if (digits >= 2) MM_cpp_min_precision = digits; else MM_cpp_min_precision = 2; }
void free_working_mapm() { m_apm_free(M_limit); m_apm_free(M_digit); m_apm_free(M_quot); m_apm_free(M_rem); m_apm_free(M_tmp0); m_apm_free(M_tmp1); }
int main(int argc, char *argv[]) { char version_info[80]; int ct; /* declare the M_APM variables ... */ M_APM aa_mapm; M_APM bb_mapm; M_APM cc_mapm; M_APM dd_mapm; if (argc < 2) { m_apm_lib_short_version(version_info); fprintf(stdout, "Usage: primenum number\t\t\t[Version 1.3, MAPM Version %s]\n", version_info); fprintf(stdout, " find the first 10 prime numbers starting with \'number\'\n"); exit(4); } /* now initialize the M_APM variables ... */ aa_mapm = m_apm_init(); bb_mapm = m_apm_init(); cc_mapm = m_apm_init(); dd_mapm = m_apm_init(); init_working_mapm(); m_apm_set_string(dd_mapm, argv[1]); /* * if input < 3, set start point = 3 */ if (m_apm_compare(dd_mapm, MM_Three) == -1) { m_apm_copy(dd_mapm, MM_Three); } /* * make sure we start with an odd integer */ m_apm_integer_divide(aa_mapm, dd_mapm, MM_Two); m_apm_multiply(bb_mapm, MM_Two, aa_mapm); m_apm_add(aa_mapm, MM_One, bb_mapm); ct = 0; while (TRUE) { if (is_number_prime(aa_mapm)) { m_apm_to_integer_string(buffer, aa_mapm); fprintf(stdout,"%s\n",buffer); if (++ct == 10) break; } m_apm_add(cc_mapm, MM_Two, aa_mapm); m_apm_copy(aa_mapm, cc_mapm); } free_working_mapm(); m_apm_free(aa_mapm); m_apm_free(bb_mapm); m_apm_free(cc_mapm); m_apm_free(dd_mapm); m_apm_free_all_mem(); exit(0); }
void m_apm_trim_mem_usage() { m_apm_free_all_mem(); m_apm_free(m_apm_init()); }
void m_apm_free_mt(M_APM t) { m_apm_enter(); m_apm_free(t); m_apm_leave(); }
void M_free_all_cnst() { if (MM_lc_PI_digits != 0) { m_apm_free(MM_Zero); m_apm_free(MM_One); m_apm_free(MM_Two); m_apm_free(MM_Three); m_apm_free(MM_Four); m_apm_free(MM_Five); m_apm_free(MM_Ten); m_apm_free(MM_0_5); m_apm_free(MM_LOG_2_BASE_E); m_apm_free(MM_LOG_3_BASE_E); m_apm_free(MM_E); m_apm_free(MM_PI); m_apm_free(MM_HALF_PI); m_apm_free(MM_2_PI); m_apm_free(MM_lc_PI); m_apm_free(MM_lc_HALF_PI); m_apm_free(MM_lc_2_PI); m_apm_free(MM_lc_log2); m_apm_free(MM_lc_log10); m_apm_free(MM_lc_log10R); m_apm_free(MM_0_85); m_apm_free(MM_5x_125R); m_apm_free(MM_5x_64R); m_apm_free(MM_5x_256R); m_apm_free(MM_5x_Eight); m_apm_free(MM_5x_Sixteen); m_apm_free(MM_5x_Twenty); m_apm_free(MM_LOG_E_BASE_10); m_apm_free(MM_LOG_10_BASE_E); MM_lc_PI_digits = 0; } }