// ISS_FUNC.H // Function declarations // © 2021 Peter J. Meyer // Functions which take a fixed number of arguments. void adjust_direction_table(int parity); // DIRTABLE.C int all_sites_visited(void); // Q&A.C void allocate_arrays(void); // ALLOC.C void allocate_memory_for_stack(void); // STACK1.C void analyse_data(void); // MEAS.C void assign_initial_spins(void); // INITSPIN.C void calculate_transition_probabilities(void); // TRANSIT.C void check_if_output_file_exists(void); // FILE_IO.C void check_stack_is_empty(char *location); // STACK1.C void copy_sites(void); // S&B.C void copy_spin_assignment(void); // SPINS.C void display_array_allocation_error(int errno, int err_flag); // ERRMSG.C void display_array_free_error(int errno); // ERRMSG.C void display_copyright(void); // TEXTOUT.C void display_file_error_message(char *operation, char *file_type, char *filename); // ERRMSG.C void display_input_data_error(char *parameter); // ERRMSG.C void display_input_data_format(void); // TEXTOUT.C void display_map(char *filepath,int context); // DISP_LAT.C void display_missing_data_message(char *parameter); // ERRMSG.C void display_startup_info(void); // TEXTOUT.C void display_syntax(void); // TEXTOUT.C void do_checkerboard_ssf_sweep(void); // SINGLE.C void do_random_ssf_sweep(void); // SINGLE.C int file_exists(char *filepath); // FILE_IO.C void flip_initial_spin_to_up(void); // SPINFLIP.C int flip_spin(int s); // SPINFLIP.C void free_arrays(void); // ALLOC.C int get_abs_internal_energy(void); // SPINS.C int get_abs_magnetization(int distinguished_spin_value); // SPINS.C double get_autocorrelation(void); // AUTOCORR.C double get_critical_temperature(void); // CRITTEMP.C void get_exe_name(char *argv[]); // READ.C int get_percolation_threshold(void); // PERC.C void init_ran1(unsigned int seed); // RAN1.C int inverse_direction(int parity, int r); // DIRTABLE.C void mark_all_sites_unvisited(void); // S&B.C void mark_all_sites_unvisited_and_clear_path(void); // S&B.C void missing_code(char *file, int linenum); // ERRMSG.C void move_str_left(char *str1, char *str2); // CHAR_AUX.C double norm_internal_energy(void); // MEAS.C double magnetization_per_spin(void); // MEAS.C unsigned long num_ran1_calls(void); // RAN1.C int open_bonds(void); // BONDS.C int open_file(char *filename, char *mode, FILE **file); // FILE_IO.C void perform_equilibrations(void); // EQUIL.C void perform_single_spin_flip_sweep(void); // SINGLE.C void perform_swendsen_wang_sweep(void); // SW-WANG.C void perform_wolff_sweep(void); // WOLFF.C void precompute_nn_sites(void); // PRECOMP.C int read_command_line(int i, char *argv[]); // READ.C void read_input_data(void); // READ.C int read_line(FILE *input_file); // FILE_IO.C void remove_leading_spaces(char *str); // CHAR_AUX.C void remove_outer_spaces(char *str); // CHAR_AUX.C void remove_trailing_spaces(char *str); // CHAR_AUX.C void remove_trailing_zeros(char *num_str); // CHAR_AUX.C void restore_spin_assignment(void); // SPINS.C int save_measurements(void); // FILE_IO.C int save_spin_assignment(void); // FILE_IO.C char *seconds_to_time_str(unsigned long num_seconds, char *time_str); // CHAR_AUX.C void set_critical_temperatures(void); // CRITTEMP.C void set_direction_table(void); // DIRTABLE.C void set_directionalities(void); // DIRTABLE.C void set_parameters(void); // SETPARAM.C void set_up_filenames(void); // FILE_IO.C void set_up_configuration(void); // S&B.C void show_notice(void); // TEXTOUT.C void skip_spaces(char** pp); // CHAR_AUX.C char *sltoa_commas(long x, char *str); // CHAR_AUX.C void spaces(char *str, int num_spaces); // CHAR_AUX.C int stack_empty(void); // STACK1.C char *system_date(char *date_str, int format); // CHAR_AUX.C char *system_time(char *time_str, int seconds); // CHAR_AUX.C void trace_all_clusters(struct _all_cluster_trace_data *actd); // CLUSTERS.C char *ultoa_commas(unsigned long x, char *str); // CHAR_AUX.C void update_measurements(int time_slice_num); // EQUIL.C void write_equilibration_results(void); // RESULTS.C void write_percolation_results(int num_iterations_done); // RESULTS.C void write_stack_data(FILE *of); // STACK1.C // Functions which take a variable number of arguments. void clear_stack(void); // STACK1.C void do_ising_spin_flip(int spin, int i, int j, ...); // SPINFLIP.C void do_q_state_potts_spin_flip(int spint, int new_spin, int i, int j, ...); // SPINFLIP.C int get_nn_site_in_dir(int r, int i, int j, ...); // Q&A.C void get_nn_sites(int i, int j, ...); // Q&A.C int initial_spin_at_occupied_site(int i, int j, ...); // SPINS.C int nn_spin_sum(int i, int j, ...); // SPINS.C int pop_from_stack(short int *iptr, short int *jptr, ...); // STACK1.C int pop_from_stack_with_r(short int *rptr, short int *iptr, short int *jptr, ...); // STACK1.C int push_onto_stack(short int i, short int j, ...); // STACK1.C int push_onto_stack_with_r(short int r, short int i, short int j, ...); // STACK1.C int spin_at_occupied_site(int i, int j, ...); // SPINS.C int spin_at_site(int i, int j, ...); // SPINS.C int sum_kronecker_deltas(int spin_value, int i, int j, ...); // SPINS.C void zero_measurements(void); // MEAS.C // Functions with names #defined in ISS_DEF.H. void INIT_PRNG1(unsigned int seed); // RAN1.C double PRNG1(void); // RAN1.C double NUM_PRNG1_CALLS(void); // RAN1.C void RESET_NUM_PRNG1_CALLS(void); // RAN1.C int PRNG1_PERIOD_EXCEEDED(void); // RAN1.C