		#include <stdlib.h>
		#include <stdio.h>
		#include <string.h>
		#include "calc.h"
		
		char *_calcsys_str_const_main_0;
		char *_calcsys_str_const_main_25;
		char *_calcsys_str_const_main_12;
		char *_calcsys_str_const_main_1;
		char *_calcsys_str_const_main_3;
		char *_calcsys_str_const_main_5;
		char *_calcsys_str_const_main_6;
		char *_calcsys_str_const_main_7;
		char *_calcsys_str_const_main_10;
		char *_calcsys_str_const_main_16;
		char *_calcsys_str_const_main_2;
		char *_calcsys_str_const_main_23;
		char *_calcsys_str_const_main_18;
		char *_calcsys_str_const_main_19;
		char *_calcsys_str_const_main_21;
		char *_calcsys_str_const_main_22;
		char *_calcsys_str_const_main_20;
		char *_calcsys_str_const_main_17;
		char *_calcsys_str_const_main_11;
		char *_calcsys_str_const_main_13;
		char *_calcsys_str_const_main_14;
		char *_calcsys_str_const_main_15;
		char *_calcsys_str_const_main_24;
		char *_calcsys_str_const_main_8;
		char *_calcsys_str_const_main_9;
		char *_calcsys_str_const_main_26;
		char *_calcsys_str_const_main_4;
		char *_calcsys_str_const_main_27;
		int is_web_page;
		char *get_and_post_filename;
		char *redirect_filename;
		char *_calcsys_err_filename[MAX_NESTED_FUNCTION_CALLS];
		char *_calcsys_err_function_name[MAX_NESTED_FUNCTION_CALLS];
		int _calcsys_err_linenumber[MAX_NESTED_FUNCTION_CALLS];
		int _calcsys_call_level;
		int _calcsys_num_function_table_items;
		char *_calcsys_function_table_name[MAX_FUNCTION_TABLE_ITEMS];
		void (*_calcsys_function_table_ptr[MAX_FUNCTION_TABLE_ITEMS])();
	char *_calc_fopen( char *result, char *filename, char *mode, long int *open_successful, int ic_ptr, char *input_filename, int line_number );
	char *_calc_fgets( char *result, char *file_descriptor, int ic_ptr, char *input_filename, int line_number );
	void _calc_fputs( char *s, char *file_descriptor, int ic_ptr, char *input_filename, int line_number );
	long int _calc_feof( char *file_descriptor, int ic_ptr, char *input_filename, int line_number );
	void _calc_fclose( char *file_descriptor, int ic_ptr, char *input_filename, int line_number );
	long int _calc_fexists( char *filename, int ic_ptr, char *input_filename, int line_number );
	long int _calc_fis_a_directory( char *pathname, int ic_ptr, char *input_filename, int line_number );
	char *_calc_flast_modified_datetime( char *result, char *filename, int ic_ptr, char *input_filename, int line_number );
	long int _calc_ffiles_in_folder( char *pathname, char *filenames, int ic_ptr, char *input_filename, int line_number );
	void _calc_fdelete( char *filename, int ic_ptr, char *input_filename, int line_number );
	long int _calc_fsize( char *filename, int ic_ptr, char *input_filename, int line_number );
	long int _calc_fread( char *b, long int number_of_bytes, char *file_descriptor, int ic_ptr, char *input_filename, int line_number );
	void _calc_fwrite( char *b, long int number_of_bytes, char *file_descriptor, int ic_ptr, char *input_filename, int line_number );
	void _calc_fseek( char *file_descriptor, long int pos, int ic_ptr, char *input_filename, int line_number );
	long int _calc_fcurrent_position( char *file_descriptor, int ic_ptr, char *input_filename, int line_number );
	char *_calc_ffile_get_contents_text( char *result, char *filename, int ic_ptr, char *input_filename, int line_number );
	void _calc_ffile_get_contents_binary( char *filename, char *b, int ic_ptr, char *input_filename, int line_number );
	void _calc_mkdir( char *dirname, long int mode_bits, int ic_ptr, char *input_filename, int line_number );
	void _calc_print( char *s, int ic_ptr, char *input_filename, int line_number );
	void _calc_output( char *s, int ic_ptr, char *input_filename, int line_number );
	long int _calc_slength( char *s, int ic_ptr, char *input_filename, int line_number );
	char *_calc_sleft( char *result, char *s, long int length, int ic_ptr, char *input_filename, int line_number );
	char *_calc_sright( char *result, char *s, long int length, int ic_ptr, char *input_filename, int line_number );
	char *_calc_sright_from_pos( char *result, char *s, long int start_pos, int ic_ptr, char *input_filename, int line_number );
	char *_calc_smid( char *result, char *s, long int start, long int length, int ic_ptr, char *input_filename, int line_number );
	char *_calc_schar( char *result, char *s, long int pos, int ic_ptr, char *input_filename, int line_number );
	char *_calc_stoupper( char *result, char *s, int ic_ptr, char *input_filename, int line_number );
	char *_calc_stolower( char *result, char *s, int ic_ptr, char *input_filename, int line_number );
	long int _calc_scaseieq( char *s1, char *s2, int ic_ptr, char *input_filename, int line_number );
	long int _calc_ssearch( char *s, char *search_string, int ic_ptr, char *input_filename, int line_number );
	long int _calc_srsearch( char *s, char *search_string, int ic_ptr, char *input_filename, int line_number );
	char *_calc_strim( char *result, char *s, int ic_ptr, char *input_filename, int line_number );
	char *_calc_sreplace( char *result, char *s, char *search_string, char *replacement_string, int ic_ptr, char *input_filename, int line_number );
	long int _calc_sexplode( char *s, char *delimiter, char *receiving_array, int ic_ptr, char *input_filename, int line_number );
	long int _calc_sexplode_whitespace( char *s, char *receiving_array, int ic_ptr, char *input_filename, int line_number );
	long int _calc_sexplode_csv( char *s, char *delimiter, char *receiving_array, int ic_ptr, char *input_filename, int line_number );
	long int _calc_schar_to_int( char *s, int ic_ptr, char *input_filename, int line_number );
	char *_calc_sint_to_char( char *result, long int x, int ic_ptr, char *input_filename, int line_number );
	char *_calc_text_is_valid_number( char *result, char *text, long int *options, long int *is_numeric );
	double _calc_mrand(  int ic_ptr, char *input_filename, int line_number );
	long int _calc_mtrunc( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_msqrt( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_mfabs( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_mfmin( double x1, double x2, int ic_ptr, char *input_filename, int line_number );
	double _calc_mfmax( double x1, double x2, int ic_ptr, char *input_filename, int line_number );
	long int _calc_miabs( long int x, int ic_ptr, char *input_filename, int line_number );
	long int _calc_mimin( long int x1, long int x2, int ic_ptr, char *input_filename, int line_number );
	long int _calc_mimax( long int x1, long int x2, int ic_ptr, char *input_filename, int line_number );
	double _calc_mlog( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_mlog10( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_mexp( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_mround( double x, long int decimal_places, int ic_ptr, char *input_filename, int line_number );
	char *_calc_mformat( char *result, double x, long int format, long int decimal_places, int ic_ptr, char *input_filename, int line_number );
	char *_calc_miformat( char *result, long int x, long int format, int ic_ptr, char *input_filename, int line_number );
	double _calc_msin( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_mcos( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_mtan( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_marcsin( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_marccos( double x, int ic_ptr, char *input_filename, int line_number );
	double _calc_marctan( double x, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dtoday( char *result, int ic_ptr, char *input_filename, int line_number );
	char *_calc_tnow( char *result, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dtnow( char *result, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dformat( char *result, char *d, char *format, int ic_ptr, char *input_filename, int line_number );
	char *_calc_tformat( char *result, char *t, char *format, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dtformat( char *result, char *dt, char *format, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dlast_day_of_the_month( long int month, long int year, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dis_last_day_of_the_month( char *dt, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dadd( char *result, char *dt, char *type1, long int number1, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dtadd( char *result, char *t, char *type1, long int number1, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dsub( char *result, char *dt, char *type1, long int number1, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dtsub( char *result, char *t, char *type1, long int number1, int ic_ptr, char *input_filename, int line_number );
	long int _calc_ddiff( char *dt_from, char *dt_to, int ic_ptr, char *input_filename, int line_number );
	long int _calc_ddatestr_is_valid( char *s, char *format, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dtimestr_is_valid( char *s, int ic_ptr, char *input_filename, int line_number );
	long int _calc_ddatetimestr_is_valid( char *s, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dleap_year( long int year, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dweekday( char *dt, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dday( char *dt, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dmonth( char *dt, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dyear( char *dt, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dhour( char *t, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dminute( char *t, int ic_ptr, char *input_filename, int line_number );
	long int _calc_dsecond( char *t, int ic_ptr, char *input_filename, int line_number );
	long int _calc_ddate_to_julian( char *d1, int ic_ptr, char *input_filename, int line_number );
	char *_calc_djulian_to_date( char *result, long int jdate, int ic_ptr, char *input_filename, int line_number );
	char *_calc_ddate_part( char *result, char *dt, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dtime_part( char *result, char *dt, int ic_ptr, char *input_filename, int line_number );
	char *_calc_ddate_from_parts( char *result, long int day, long int month, long int year, int ic_ptr, char *input_filename, int line_number );
	char *_calc_dtime_from_parts( char *result, long int hour, long int minute, long int second, int ic_ptr, char *input_filename, int line_number );
	char *_calc_ddatetime_from_parts( char *result, long int day, long int month, long int year, long int hour, long int minute, long int second, int ic_ptr, char *input_filename, int line_number );
	char *_calc_ddatetime_from_vars( char *result, char *dt, char *t, int ic_ptr, char *input_filename, int line_number );
	void _calc_binit( char *b, int ic_ptr, char *input_filename, int line_number );
	void _calc_bset_size( char *b, long int len, int ic_ptr, char *input_filename, int line_number );
	void _calc_bclear( char *b, long int num, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bsize( char *b, int ic_ptr, char *input_filename, int line_number );
	void _calc_bset_byte( char *b, long int pos, long int byte, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bget_byte( char *b, long int pos, int ic_ptr, char *input_filename, int line_number );
	void _calc_bset_bit( char *b, long int pos, long int bit, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bget_bit( char *b, long int pos, int ic_ptr, char *input_filename, int line_number );
	char *_calc_bint_to_hex( char *result, long int x, long int pad_with_leading_zeros, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bhex_to_int( char *s, int ic_ptr, char *input_filename, int line_number );
	void _calc_calc_mysql_init(  int ic_ptr, char *input_filename, int line_number );
	char *_calc_db_login( char *result, char *database, char *username, char *password, int ic_ptr, char *input_filename, int line_number );
	char *_calc_db_prep_string_for_sql( char *result, char *s, int ic_ptr, char *input_filename, int line_number );
	char *_calc_db_run_query( char *result, char *query, char *connection, int ic_ptr, char *input_filename, int line_number );
	long int _calc_db_query_num_rows( char *query_result, char *connection, int ic_ptr, char *input_filename, int line_number );
	long int _calc_db_query_has_rows( char *query, char *connection, int ic_ptr, char *input_filename, int line_number );
	char *_calc_db_get_row( char *result, char *query_result, char *connection, int ic_ptr, char *input_filename, int line_number );
	void _calc_db_free_result( char *query_result, char *connection, int ic_ptr, char *input_filename, int line_number );
	long int _calc_db_field_is_null( char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	char *_calc_db_get_field_string( char *result, char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	long int _calc_db_get_field_int( char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	long int _calc_db_get_field_decimal( char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	double _calc_db_get_field_double( char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	long int _calc_db_get_field_bool( char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	char *_calc_db_get_field_date( char *result, char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	char *_calc_db_get_field_time( char *result, char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	char *_calc_db_get_field_datetime( char *result, char *column_name, char *row_data, int ic_ptr, char *input_filename, int line_number );
	char *_calc_iconvert_to_html( char *result, char *text, int ic_ptr, char *input_filename, int line_number );
	char *_calc_iurlencode( char *result, char *text, int ic_ptr, char *input_filename, int line_number );
	char *_calc_iurldecode( char *result, char *text, int ic_ptr, char *input_filename, int line_number );
	void _calc_ijump_to_page( char *url, int ic_ptr, char *input_filename, int line_number );
	void _calc_iexit_if_search_bot(  int ic_ptr, char *input_filename, int line_number );
	char *_calc_iconvert_from_html( char *result, char *text );
	void _calc_write_HTML_headers( char *page_title, char *description );
	long int _calc_cint_to_decimal( long int num, int ic_ptr, char *input_filename, int line_number );
	double _calc_cint_to_double( long int num, int ic_ptr, char *input_filename, int line_number );
	long int _calc_cdecimal_to_int( long int num, int ic_ptr, char *input_filename, int line_number );
	double _calc_cdecimal_to_double( long int num, int ic_ptr, char *input_filename, int line_number );
	long int _calc_cdouble_to_int( double num, int ic_ptr, char *input_filename, int line_number );
	long int _calc_double_to_decimal( double num, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cint_to_string( char *result, long int num, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdecimal_to_string( char *result, long int num, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdouble_to_string( char *result, double num, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cbool_to_string( char *result, long int x, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdate_to_string( char *result, char *dt, char *format, int ic_ptr, char *input_filename, int line_number );
	char *_calc_ctime_to_string( char *result, char *t, char *format, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdatetime_to_string( char *result, char *dt, char *format, int ic_ptr, char *input_filename, int line_number );
	long int _calc_cstring_to_int( char *s, int ic_ptr, char *input_filename, int line_number );
	long int _calc_cstring_to_decimal( char *s, int ic_ptr, char *input_filename, int line_number );
	double _calc_cstring_to_double( char *s, int ic_ptr, char *input_filename, int line_number );
	long int _calc_cstring_to_bool( char *s, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cstring_to_date( char *result, char *s, char *format, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cstring_to_time( char *result, char *s, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cstring_to_datetime( char *result, char *s, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cbinary_to_string( char *result, char *b, long int output_as_hex, int ic_ptr, char *input_filename, int line_number );
	long int _calc_cbinary_to_int( char *b, int ic_ptr, char *input_filename, int line_number );
	long int _calc_cbinary_to_decimal( char *b, int ic_ptr, char *input_filename, int line_number );
	double _calc_cbinary_to_double( char *b, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cbinary_to_date( char *result, char *b, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cbinary_to_time( char *result, char *b, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cbinary_to_datetime( char *result, char *b, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cstring_to_binary( char *result, char *s, long int input_is_hex, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cint_to_binary( char *result, long int num, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdecimal_to_binary( char *result, long int num, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdouble_to_binary( char *result, double num, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdate_to_binary( char *result, char *s1, int ic_ptr, char *input_filename, int line_number );
	char *_calc_ctime_to_binary( char *result, char *s1, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdatetime_to_binary( char *result, char *s1, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cdate_to_datetime( char *result, char *dt1, int ic_ptr, char *input_filename, int line_number );
	char *_calc_cbyte_to_string( char *result, long int num, int ic_ptr, char *input_filename, int line_number );
	long int _calc_cstring_to_byte( char *s, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bit_and( long int num1, long int num2, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bit_or( long int num1, long int num2, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bit_xor( long int num1, long int num2, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bit_not( long int num, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bit_shift_left( long int num, long int num_pos, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bit_shift_right( long int num, long int num_pos, int ic_ptr, char *input_filename, int line_number );
	long int _calc_bit_is_set( long int num, long int opt, int ic_ptr, char *input_filename, int line_number );
	void _calc_msort( char *num, char *keys, long int number_of_elements, long int ascending, int ic_ptr, char *input_filename, int line_number );
	void _calc_ssort( char *num, char *keys, long int number_of_elements, long int ascending, int ic_ptr, char *input_filename, int line_number );
	void _calc_gsort( char *num, char *keys, long int number_of_elements, char *compare_function_name, long int ascending, int ic_ptr, char *input_filename, int line_number );
	long int _calc_array_index_size( char *x, long int index_nunber, int ic_ptr, char *input_filename, int line_number );
	long int _calc_array_number_of_dimensions( char *x, int ic_ptr, char *input_filename, int line_number );
	char *_calc_syget_get_parameter( char *result, char *parameter, int ic_ptr, char *input_filename, int line_number );
	char *_calc_syget_post_parameter( char *result, char *parameter, int ic_ptr, char *input_filename, int line_number );
	char *_calc_syget_session_variable( char *result, char *parameter, char *cxn, int ic_ptr, char *input_filename, int line_number );
	void _calc_syset_session_variable( char *parameter, char *value, char *cxn, int ic_ptr, char *input_filename, int line_number );
	void _calc_syexit( long int exit_code, int ic_ptr, char *input_filename, int line_number );
	char *_calc_syget_ip_address( char *result, int ic_ptr, char *input_filename, int line_number );
	long int _calc_sylow_res_screen(  int ic_ptr, char *input_filename, int line_number );
	void _calc_syset_process_background_priority(  int ic_ptr, char *input_filename, int line_number );
	void _calc_init_acv_sessions( char *domain, int ic_ptr, char *input_filename, int line_number );
	void _calc_acv_session_set( char *item, char *value, char *cxn, int ic_ptr, char *input_filename, int line_number );
	char *_calc_acv_session_get( char *result, char *item, char *cxn, int ic_ptr, char *input_filename, int line_number );
	char *_calc_acv_session_id( char *result, int ic_ptr, char *input_filename, int line_number );
	char *_calc_process_external_entry_point( char *result, char *cxn, int ic_ptr, char *input_filename, int line_number );
	void _calc_exit_if_session_expired( char *cxn, int ic_ptr, char *input_filename, int line_number );
	void _calc_llnew( char *l1, long int *options );
	char *_calc_llinsert( char *l1, char *key, char **data_ptr );
	char *_calc_llsearch( char *l1, char *key );
	long int _calc_llist_first_item( char *l1, char *l2, long int *ascending );
	long int _calc_llist_next_item( char *current_item, long int *ascending );
	char *_calc_dllnew( char *result, long int *options );
	void _calc_dllinsert( char *l1, char *key, char **data_ptr );
	char *_calc_dllsearch( char *l1, char *key );
	char *_calc_object_bst_tree_node_get_strkey( char *result, char *_calcsys_member_ptr );
	long int _calc_object_bst_tree_node_get_intkey( char *_calcsys_member_ptr );
	char *_calc_object_bst_tree_node_get_bkey( char *result, char *_calcsys_member_ptr );
	char *_calc_object_bst_tree_node_get_data_ptr( char *_calcsys_member_ptr );
	void _calc_object_bst_tree_create( char *_calcsys_member_ptr, long int *options );
	long int _calc_object_bst_tree_insert_strkey( char *_calcsys_member_ptr, char *key, char **data_ptr );
	long int _calc_object_bst_tree_insert_intkey( char *_calcsys_member_ptr, long int *key, char **data_ptr );
	long int _calc_object_bst_tree_insert_bkey( char *_calcsys_member_ptr, char *key_bits, char **data_ptr );
	char *_calc_object_bst_tree_search_strkey( char *_calcsys_member_ptr, char *key, long int *found );
	char *_calc_object_bst_tree_search_intkey( char *_calcsys_member_ptr, long int *key, long int *found );
	char *_calc_object_bst_tree_search_bkey( char *_calcsys_member_ptr, char *key_bits, long int *found );
	long int _calc_object_bst_tree_key_is_in_tree_strkey( char *_calcsys_member_ptr, char *key );
	long int _calc_object_bst_tree_key_is_in_tree_intkey( char *_calcsys_member_ptr, long int *key );
	long int _calc_object_bst_tree_key_is_in_tree_bkey( char *_calcsys_member_ptr, char *key_bits );
	long int _calc_object_bst_tree_delete_item_strkey( char *_calcsys_member_ptr, char *key );
	long int _calc_object_bst_tree_delete_item_intkey( char *_calcsys_member_ptr, long int *key );
	long int _calc_object_bst_tree_delete_item_bkey( char *_calcsys_member_ptr, char *key_bits );
	long int _calc_object_bst_tree_first_item( char *_calcsys_member_ptr, char *bst2, long int *ascending );
	long int _calc_object_bst_tree_next_item( char *_calcsys_member_ptr, char *nptr, long int *ascending );
	long int _calc_object_bst_tree_total_items_in_tree( char *_calcsys_member_ptr );
	long int _calc_object_bst_tree_unique_items_in_tree( char *_calcsys_member_ptr );
	long int _calc_bst_tree_first_item( char *bst_tr, char *nptr2, long int *ascending );
	long int _calc_bst_tree_next_item( char *bst_current_nptr, long int *ascending );
	void _calc_vec_set_size( char *x, long int *size );
	long int _calc_vec_get_size( char *x );
	void _calc_vec_clear( char *x );
	void _calc_vec_set_item( char *x, long int *item, double *value );
	double _calc_vec_get_item( char *x, long int *item );
	char *_calc_vec_add( char *result, char *x, char *y );
	char *_calc_vec_subtract( char *result, char *x, char *y );
	char *_calc_vec_multiply( char *result, char *x, char *y );
	char *_calc_vec_divide( char *result, char *x, char *y );
	char *_calc_vec_square( char *result, char *x );
	char *_calc_vec_sqroot( char *result, char *x );
	char *_calc_vec_add_scalar( char *result, char *x, double *y );
	char *_calc_vec_subtract_scalar( char *result, char *x, double *y );
	char *_calc_vec_multiply_scalar( char *result, char *x, double *y );
	char *_calc_vec_divide_scalar( char *result, char *x, double *y );
	double _calc_vec_sum( char *x );
	double _calc_vec_average( char *x );
	char *_calc_vec_negate( char *result, char *x );
	double _calc_vec_min_value( char *x );
	double _calc_vec_max_value( char *x );
	char *_calc_vec_sort( char *result, char *x, long int *ascending );
	char *_calc_vec_clean_data( char *result, char *x, long int *remove_negative_numbers, long int *remove_zeros, long int *remove_outliers, double *outlier_num_of_standard_deviations, long int *filter_out_low_values, double *low_value_threshold, long int *filter_out_high_values, double *high_value_threshold );
	double _calc_vec_percentile( char *x, double *percentile );
	char *_calc_vec_continuous_var_frequency( char *result, char *x, long int *number_of_buckets, double *step_size_per_bucket );
	char *_calc_vec_integer_variable_frequencies( char *result, char *x, char *x_without_duplicates );
	double _calc_st_linear_regression_slope( char *x, char *y );
	double _calc_st_linear_regression_intercept( char *x, char *y );
	char *_calc_st_linear_regression_forecast( char *result, char *x, double *slope, double *intercept );
	double _calc_st_correlation( char *x, char *y );
	double _calc_st_stdev_p( char *x );
	double _calc_st_stdev_s( char *x );
	void _calc_vecs_set_size( char *x, long int *size );
	long int _calc_vecs_get_size( char *x );
	void _calc_vecs_set_item( char *x, long int *item, char *value );
	char *_calc_vecs_get_item( char *result, char *x, long int *item );
	char *_calc_vecs_sort( char *result, char *x, long int *ascending );
	char *_calc_vecs_process_duplicates( char *result, char *x, char *x_without_duplicates );
	char *_calc_pdf_create( double page_height, double page_width, char *creator_text, char *producer_text, char *title_text, char *author_text, char *subject_text, char *date_text, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_set_font( char *this_page, char *font_name, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_add_text( char *this_page, char *text, double font_size, double y_position, double x_position, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_add_text_right_align( char *this_page, char *text, double font_size, double y_position, double x_position, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_add_text_center_within_field( char *this_page, char *text, double font_size, double y_position, double x_position, double field_width, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_add_text2( char *this_page, char *text, double font_size, double y_position, double x_position, long int color, long int truncation_type, double max_width, int ic_ptr, char *input_filename, int line_number );
	double _calc_pdf_add_text_wrap( char *this_page, char *text, double font_size, double x_position, double y_position, long int color, double wrap_width, double line_spacing, double page_top_margin, double page_bottom_margin, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_new_page( char *this_page, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_save_to_file( char *this_page, char *filename, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_set_as_portrait( char *this_page, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_set_as_landscape( char *this_page, int ic_ptr, char *input_filename, int line_number );
	double _calc_pdf_get_text_width( char *this_page, char *font_name, char *text, double font_size, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_free( char *this_page, int ic_ptr, char *input_filename, int line_number );
	char *_calc_pdf_get_error( char *result, char *this_page, int ic_ptr, char *input_filename, int line_number );
	void _calc_pdf_clear_error( char *this_page, int ic_ptr, char *input_filename, int line_number );
	double _calc_fin_general_calc( long int *calculation_type, double *initial_amount, double *final_value, double *amount_per_period, double *amount_per_period_growth_rate, double *fund_growth_rate, long int *number_of_periods, long int *solution_found );
	void _calc_inorder( char **nd );
	void _calc_insert( double *value, char **nd );
	double _calc_distance( double *lat1, double *long1, double *lat2, double *long2 );
	char *_calc_is_leap_year( char *result, long int *year );
	double _calc_loan_repayments( double *amount, long int *number_of_years, double *interest_rate, long int *number_of_periods_per_year );


														// sample_code.calc:  Line: 26
														// var int i25;

	long int i25;


														// sample_code.calc:  Line: 27
														// var int i26;

	long int i26;
	long int _calc_main( long int *argc, char *argv )
	{
#function_start
_calc_main
279
		_calcsys_err_filename[_calcsys_call_level] = "sample_code.calc";
		_calcsys_err_function_name[_calcsys_call_level] = "main";
		_calcsys_err_linenumber[_calcsys_call_level] = 37;
		_calcsys_call_level++;


														// sample_code.calc:  Line: 37
														// {

		{


														// sample_code.calc:  Line: 38
														// print( "1. Print the numbers from 1 to 10." );

			_calc_print( _calcsys_str_const_main_5, 0, "sample_code.calc", 38 );


														// sample_code.calc:  Line: 40
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 40 );


														// sample_code.calc:  Line: 42
														// var int i;



														// sample_code.calc:  Line: 42
														// var int i;



														// sample_code.calc:  Line: 44
														// for (i=1 to 10)

			i = 1;
			while (i <= 10)
			{


														// sample_code.calc:  Line: 45
														// 	print( i );

				_calc_print( _calcsys_conv_int_to_string( _calcsys_register_s_0, i ), 0, "sample_code.calc", 45 );
				i++;
			}


														// sample_code.calc:  Line: 48
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 48 );


														// sample_code.calc:  Line: 49
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 49 );


														// sample_code.calc:  Line: 50
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 50 );


														// sample_code.calc:  Line: 57
														// print( "2. Generate a set of random numbers, insert them into a binary tree structure and produce a sorted output." );

			_calc_print( _calcsys_str_const_main_6, 0, "sample_code.calc", 57 );


														// sample_code.calc:  Line: 59
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 59 );


														// sample_code.calc:  Line: 64
														// var link to node tree;



														// sample_code.calc:  Line: 64
														// var link to node tree;



														// sample_code.calc:  Line: 66
														// tree = new node;

			tree = malloc( 24 );
			memset( tree, 0, 24 );


														// sample_code.calc:  Line: 66
														// tree = new node;



														// sample_code.calc:  Line: 68
														// tree..value = mround( mrand() * 100, 1 );

			(*((double *)((_calcsys_check_for_null_link( tree, "sample_code.calc", 68 ))))) = _calc_mround( ((_calc_mrand(  0, "sample_code.calc", 68 )) * (((double ) ( 100)))), 1, 0, "sample_code.calc", 68 );


														// sample_code.calc:  Line: 69
														// tree..left = NULL_LINK;

			(*(char **) (((_calcsys_check_for_null_link( tree, "sample_code.calc", 69 ) + 8)))) = 0;


														// sample_code.calc:  Line: 70
														// tree..right = NULL_LINK;

			(*(char **) (((_calcsys_check_for_null_link( tree, "sample_code.calc", 70 ) + 16)))) = 0;


														// sample_code.calc:  Line: 72
														// for (i25 = 1 to 10)

			i25 = 1;
			while (i25 <= 10)
			{


														// sample_code.calc:  Line: 73
														//     insert( mround( mrand() * 100, 1 ), tree );

				_calc_insert( _calcsys_set_register_n( &_calcsys_register_n_0, _calc_mround( ((_calc_mrand(  0, "sample_code.calc", 73 )) * (((double ) ( 100)))), 1, 0, "sample_code.calc", 73 )), _calcsys_set_register_p( &_calcsys_register_p_0, tree) );
				i25++;
			}


														// sample_code.calc:  Line: 75
														// inorder( tree );

			_calc_inorder( _calcsys_set_register_p( &_calcsys_register_p_1, tree) );


														// sample_code.calc:  Line: 79
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 79 );


														// sample_code.calc:  Line: 80
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 80 );


														// sample_code.calc:  Line: 81
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 81 );


														// sample_code.calc:  Line: 88
														// print( "3. Calculate the distance between two points based on Latitude and Longitude." );

			_calc_print( _calcsys_str_const_main_7, 0, "sample_code.calc", 88 );


														// sample_code.calc:  Line: 90
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 90 );


														// sample_code.calc:  Line: 94
														// print( "The distance between Paris and New York is " & mformat( distance( 40.7127837, -74.0059413, 48.864716, 2.349014 ), NUM_FMT_FIXED, 0 ) & "km" );

			_calc_print( str_concat( _calcsys_register_s_2, "sample_code.calc", 94, 3, _calcsys_str_const_main_8, _calc_mformat( _calcsys_register_s_1, _calc_distance( _calcsys_set_register_n( &_calcsys_register_n_1, 40.7127837), _calcsys_set_register_n( &_calcsys_register_n_2, -74.0059413), _calcsys_set_register_n( &_calcsys_register_n_3, 48.864716), _calcsys_set_register_n( &_calcsys_register_n_4, 2.349014) ), 1, 0, 0, "sample_code.calc", 94 ), _calcsys_str_const_main_9), 0, "sample_code.calc", 94 );


														// sample_code.calc:  Line: 97
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 97 );


														// sample_code.calc:  Line: 98
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 98 );


														// sample_code.calc:  Line: 99
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 99 );


														// sample_code.calc:  Line: 111
														// print( "4. Determine whether a year is a leap year." );

			_calc_print( _calcsys_str_const_main_10, 0, "sample_code.calc", 111 );


														// sample_code.calc:  Line: 113
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 113 );


														// sample_code.calc:  Line: 115
														// print( "Leap year: year 1900 (" & is_leap_year( 1900 ) & ")" );

			_calc_print( str_concat( _calcsys_register_s_4, "sample_code.calc", 115, 3, _calcsys_str_const_main_11, _calc_is_leap_year( _calcsys_register_s_3, _calcsys_set_register_i( &_calcsys_register_i_0, 1900) ), _calcsys_str_const_main_12), 0, "sample_code.calc", 115 );


														// sample_code.calc:  Line: 116
														// print( "Leap year: year 2000 (" & is_leap_year( 2000 ) & ")" );

			_calc_print( str_concat( _calcsys_register_s_6, "sample_code.calc", 116, 3, _calcsys_str_const_main_13, _calc_is_leap_year( _calcsys_register_s_5, _calcsys_set_register_i( &_calcsys_register_i_1, 2000) ), _calcsys_str_const_main_12), 0, "sample_code.calc", 116 );


														// sample_code.calc:  Line: 117
														// print( "Leap year: year 2001 (" & is_leap_year( 2001 ) & ")" );

			_calc_print( str_concat( _calcsys_register_s_8, "sample_code.calc", 117, 3, _calcsys_str_const_main_14, _calc_is_leap_year( _calcsys_register_s_7, _calcsys_set_register_i( &_calcsys_register_i_2, 2001) ), _calcsys_str_const_main_12), 0, "sample_code.calc", 117 );


														// sample_code.calc:  Line: 118
														// print( "Leap year: year 2004 (" & is_leap_year( 2004 ) & ")" );

			_calc_print( str_concat( _calcsys_register_s_10, "sample_code.calc", 118, 3, _calcsys_str_const_main_15, _calc_is_leap_year( _calcsys_register_s_9, _calcsys_set_register_i( &_calcsys_register_i_3, 2004) ), _calcsys_str_const_main_12), 0, "sample_code.calc", 118 );


														// sample_code.calc:  Line: 121
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 121 );


														// sample_code.calc:  Line: 122
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 122 );


														// sample_code.calc:  Line: 123
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 123 );


														// sample_code.calc:  Line: 131
														// print( "5. Determine repayments on a loan." );

			_calc_print( _calcsys_str_const_main_16, 0, "sample_code.calc", 131 );


														// sample_code.calc:  Line: 133
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 133 );


														// sample_code.calc:  Line: 135
														// print( "Example inputs:" );

			_calc_print( _calcsys_str_const_main_17, 0, "sample_code.calc", 135 );


														// sample_code.calc:  Line: 137
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 137 );


														// sample_code.calc:  Line: 139
														// output( "<table>" );

			_calc_output( _calcsys_str_const_main_18, 0, "sample_code.calc", 139 );


														// sample_code.calc:  Line: 141
														// output( "<tr><td>Amount:</td><td>$50,000</td></tr>" );

			_calc_output( _calcsys_str_const_main_19, 0, "sample_code.calc", 141 );


														// sample_code.calc:  Line: 142
														// output( "<tr><td>Term:</td><td>10 years</td></tr>" );

			_calc_output( _calcsys_str_const_main_20, 0, "sample_code.calc", 142 );


														// sample_code.calc:  Line: 143
														// output( "<tr><td>Interest rate:</td><td>8%</td></tr>" );

			_calc_output( _calcsys_str_const_main_21, 0, "sample_code.calc", 143 );


														// sample_code.calc:  Line: 144
														// output( "<tr><td>Repayment frequency:</td><td>fortnightly</td></tr>" );

			_calc_output( _calcsys_str_const_main_22, 0, "sample_code.calc", 144 );


														// sample_code.calc:  Line: 146
														// output( "</table>" );

			_calc_output( _calcsys_str_const_main_23, 0, "sample_code.calc", 146 );


														// sample_code.calc:  Line: 148
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 148 );


														// sample_code.calc:  Line: 152
														// print( "Repayments are $" &  mformat( loan_repayments( 50000, 10, 8, 26 ), NUM_FMT_FIXED, 2 ) & " per fortnight" );

			_calc_print( str_concat( _calcsys_register_s_12, "sample_code.calc", 152, 3, _calcsys_str_const_main_24, _calc_mformat( _calcsys_register_s_11, _calc_loan_repayments( _calcsys_set_register_n( &_calcsys_register_n_5, ( (double) (50000))), _calcsys_set_register_i( &_calcsys_register_i_4, 10), _calcsys_set_register_n( &_calcsys_register_n_6, ( (double) (8))), _calcsys_set_register_i( &_calcsys_register_i_5, 26) ), 1, 2, 0, "sample_code.calc", 152 ), _calcsys_str_const_main_25), 0, "sample_code.calc", 152 );


														// sample_code.calc:  Line: 155
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 155 );


														// sample_code.calc:  Line: 156
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 156 );


														// sample_code.calc:  Line: 157
														// print( "" );

			_calc_print( _calcsys_str_const_main_0, 0, "sample_code.calc", 157 );
		_calcsys_register_p_2 = (char *) &tree;
		
		if (((var *) _calcsys_register_s_0)->var_type == VAR_STRING || ((var *) _calcsys_register_s_0)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_0 );
			((var *) _calcsys_register_s_0)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_1)->var_type == VAR_STRING || ((var *) _calcsys_register_s_1)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_1 );
			((var *) _calcsys_register_s_1)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_2)->var_type == VAR_STRING || ((var *) _calcsys_register_s_2)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_2 );
			((var *) _calcsys_register_s_2)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_3)->var_type == VAR_STRING || ((var *) _calcsys_register_s_3)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_3 );
			((var *) _calcsys_register_s_3)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_4)->var_type == VAR_STRING || ((var *) _calcsys_register_s_4)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_4 );
			((var *) _calcsys_register_s_4)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_5)->var_type == VAR_STRING || ((var *) _calcsys_register_s_5)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_5 );
			((var *) _calcsys_register_s_5)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_6)->var_type == VAR_STRING || ((var *) _calcsys_register_s_6)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_6 );
			((var *) _calcsys_register_s_6)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_7)->var_type == VAR_STRING || ((var *) _calcsys_register_s_7)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_7 );
			((var *) _calcsys_register_s_7)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_8)->var_type == VAR_STRING || ((var *) _calcsys_register_s_8)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_8 );
			((var *) _calcsys_register_s_8)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_9)->var_type == VAR_STRING || ((var *) _calcsys_register_s_9)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_9 );
			((var *) _calcsys_register_s_9)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_10)->var_type == VAR_STRING || ((var *) _calcsys_register_s_10)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_10 );
			((var *) _calcsys_register_s_10)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_11)->var_type == VAR_STRING || ((var *) _calcsys_register_s_11)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_11 );
			((var *) _calcsys_register_s_11)->var_type = VAR_EMPTY;
		}
		if (((var *) _calcsys_register_s_12)->var_type == VAR_STRING || ((var *) _calcsys_register_s_12)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_12 );
			((var *) _calcsys_register_s_12)->var_type = VAR_EMPTY;
		}
		}
#function_end _calc_main
	_calcsys_call_level--;
	return (result);
	}
	void _calc_insert( double *value, char **nd )
	{
#function_start
_calc_insert
275
		_calcsys_err_filename[_calcsys_call_level] = "sample_code.calc";
		_calcsys_err_function_name[_calcsys_call_level] = "insert";
		_calcsys_err_linenumber[_calcsys_call_level] = 163;
		_calcsys_call_level++;


														// sample_code.calc:  Line: 163
														// {

		{


														// sample_code.calc:  Line: 164
														//    if (value < nd..value)

			if (((*value) < (*((double *)((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 164 )))))))
			{


														// sample_code.calc:  Line: 165
														//    {

				{


														// sample_code.calc:  Line: 166
														//         if (nd..left != NULL_LINK)

					if (((*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 166 ) + 8)))) != 0))
					{


														// sample_code.calc:  Line: 167
														//             insert( value, nd..left );

						_calc_insert( _calcsys_set_register_n( &_calcsys_register_n_0, (*value)), _calcsys_set_register_p( &_calcsys_register_p_0, (*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 167 ) + 8))))) );
					}
					else
					{


														// sample_code.calc:  Line: 169
														//        {

						{


														// sample_code.calc:  Line: 170
														//             nd..left = new node;

							(*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 170 ) + 8)))) = malloc( 24 );
							memset( (*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 170 ) + 8)))), 0, 24 );


														// sample_code.calc:  Line: 170
														//             nd..left = new node;



														// sample_code.calc:  Line: 171
														//             nd..left..value = value;

							(*((double *)((*((char **) (_calcsys_check_for_null_link( (_calcsys_check_for_null_link( (*nd), "sample_code.calc", 171 ) + 8), "sample_code.calc", 171 ))))))) = (*value);


														// sample_code.calc:  Line: 172
														//             nd..left..left = NULL_LINK;

							(*(char **) (((*((char **) (_calcsys_check_for_null_link( (_calcsys_check_for_null_link( (*nd), "sample_code.calc", 172 ) + 8), "sample_code.calc", 172 ))) + 8)))) = 0;


														// sample_code.calc:  Line: 173
														//             nd..left..right = NULL_LINK;

							(*(char **) (((*((char **) (_calcsys_check_for_null_link( (_calcsys_check_for_null_link( (*nd), "sample_code.calc", 173 ) + 8), "sample_code.calc", 173 ))) + 16)))) = 0;
						}
					}
				}
			}
			else
			{


														// sample_code.calc:  Line: 177
														//    {

				{


														// sample_code.calc:  Line: 178
														//         if (nd..right != NULL_LINK)

					if (((*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 178 ) + 16)))) != 0))
					{


														// sample_code.calc:  Line: 179
														//             insert( value, nd..right );

						_calc_insert( _calcsys_set_register_n( &_calcsys_register_n_1, (*value)), _calcsys_set_register_p( &_calcsys_register_p_1, (*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 179 ) + 16))))) );
					}
					else
					{


														// sample_code.calc:  Line: 181
														//        {

						{


														// sample_code.calc:  Line: 182
														//             nd..right = new node;

							(*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 182 ) + 16)))) = malloc( 24 );
							memset( (*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 182 ) + 16)))), 0, 24 );


														// sample_code.calc:  Line: 182
														//             nd..right = new node;



														// sample_code.calc:  Line: 183
														//             nd..right..value = value;

							(*((double *)((*((char **) (_calcsys_check_for_null_link( (_calcsys_check_for_null_link( (*nd), "sample_code.calc", 183 ) + 16), "sample_code.calc", 183 ))))))) = (*value);


														// sample_code.calc:  Line: 184
														//             nd..right..left = NULL_LINK;

							(*(char **) (((*((char **) (_calcsys_check_for_null_link( (_calcsys_check_for_null_link( (*nd), "sample_code.calc", 184 ) + 16), "sample_code.calc", 184 ))) + 8)))) = 0;


														// sample_code.calc:  Line: 185
														//             nd..right..right = NULL_LINK;

							(*(char **) (((*((char **) (_calcsys_check_for_null_link( (_calcsys_check_for_null_link( (*nd), "sample_code.calc", 185 ) + 16), "sample_code.calc", 185 ))) + 16)))) = 0;
						}
					}
				}
			}
		}
#function_end _calc_insert
	_calcsys_call_level--;
	}
	void _calc_inorder( char **nd )
	{
#function_start
_calc_inorder
274
		_calcsys_err_filename[_calcsys_call_level] = "sample_code.calc";
		_calcsys_err_function_name[_calcsys_call_level] = "inorder";
		_calcsys_err_linenumber[_calcsys_call_level] = 192;
		_calcsys_call_level++;


														// sample_code.calc:  Line: 192
														// {

		{


														// sample_code.calc:  Line: 193
														//     if (nd..left != NULL_LINK)

			if (((*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 193 ) + 8)))) != 0))
			{


														// sample_code.calc:  Line: 194
														//         inorder(nd..left);

				_calc_inorder( _calcsys_set_register_p( &_calcsys_register_p_0, (*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 194 ) + 8))))) );
			}


														// sample_code.calc:  Line: 196
														//     print( nd..value );

			_calc_print( _calcsys_conv_double_to_string( _calcsys_register_s_0, (*((double *)((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 196 ))))) ), 0, "sample_code.calc", 196 );


														// sample_code.calc:  Line: 198
														//     if (nd..right != NULL_LINK)

			if (((*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 198 ) + 16)))) != 0))
			{


														// sample_code.calc:  Line: 199
														//         inorder(nd..right);

				_calc_inorder( _calcsys_set_register_p( &_calcsys_register_p_1, (*(char **) (((_calcsys_check_for_null_link( (*nd), "sample_code.calc", 199 ) + 16))))) );
			}
		if (((var *) _calcsys_register_s_0)->var_type == VAR_STRING || ((var *) _calcsys_register_s_0)->var_type == VAR_BINARY)
		{
			free_curr_mem_1( (char *) _calcsys_register_s_0 );
			((var *) _calcsys_register_s_0)->var_type = VAR_EMPTY;
		}
		}
#function_end _calc_inorder
	_calcsys_call_level--;
	}
	char *_calc_is_leap_year( char *result, long int *year )
	{
#function_start
_calc_is_leap_year
277
		_calcsys_err_filename[_calcsys_call_level] = "sample_code.calc";
		_calcsys_err_function_name[_calcsys_call_level] = "is_leap_year";
		_calcsys_err_linenumber[_calcsys_call_level] = 203;
		_calcsys_call_level++;


														// sample_code.calc:  Line: 203
														// {

		{


														// sample_code.calc:  Line: 204
														// 	result = "no";

			copy_var( (var *) result, (var *) _calcsys_str_const_main_26, 204, "sample_code.calc", 2 );


														// sample_code.calc:  Line: 206
														// 	if (year mod 4 == 0)

			if (((((*year)) % (4)) == 0))
			{


														// sample_code.calc:  Line: 207
														// 		result = "yes";

				copy_var( (var *) result, (var *) _calcsys_str_const_main_27, 207, "sample_code.calc", 2 );
			}


														// sample_code.calc:  Line: 209
														// 	if (year mod 100 == 0)

			if (((((*year)) % (100)) == 0))
			{


														// sample_code.calc:  Line: 210
														// 		result = "no";

				copy_var( (var *) result, (var *) _calcsys_str_const_main_26, 210, "sample_code.calc", 2 );
			}


														// sample_code.calc:  Line: 212
														// 	if (year mod 400 == 0)

			if (((((*year)) % (400)) == 0))
			{


														// sample_code.calc:  Line: 213
														// 		result = "yes";

				copy_var( (var *) result, (var *) _calcsys_str_const_main_27, 213, "sample_code.calc", 2 );
			}
		}
#function_end _calc_is_leap_year
	_calcsys_call_level--;
	return (result);
	}
	double _calc_loan_repayments( double *amount, long int *number_of_years, double *interest_rate, long int *number_of_periods_per_year )
	{
#function_start
_calc_loan_repayments
278
		_calcsys_err_filename[_calcsys_call_level] = "sample_code.calc";
		_calcsys_err_function_name[_calcsys_call_level] = "loan_repayments";
		_calcsys_err_linenumber[_calcsys_call_level] = 217;
		_calcsys_call_level++;


														// sample_code.calc:  Line: 217
														// {

		{


														// sample_code.calc:  Line: 218
														// 	var double interest_rate_per_period;



														// sample_code.calc:  Line: 218
														// 	var double interest_rate_per_period;



														// sample_code.calc:  Line: 219
														// 	var int number_of_periods;



														// sample_code.calc:  Line: 219
														// 	var int number_of_periods;



														// sample_code.calc:  Line: 221
														// 	interest_rate_per_period = (interest_rate / 100) / number_of_periods_per_year;

			interest_rate_per_period = (div_check_0_double( (div_check_0_double( (*interest_rate), ((double ) ( 100)), "sample_code.calc", 221)), ((double ) ( (*number_of_periods_per_year))), "sample_code.calc", 221));


														// sample_code.calc:  Line: 223
														// 	number_of_periods = number_of_years * number_of_periods_per_year;

			number_of_periods = (((*number_of_years)) * ((*number_of_periods_per_year)));


														// sample_code.calc:  Line: 225
														// 	result = (amount * interest_rate_per_period) / (1 - (1 + interest_rate_per_period) ^ (-number_of_periods));

			result = (div_check_0_double( (((*amount)) * (interest_rate_per_period)), (((double) ( 1))) - ((double_pow( (((double) ( 1))) + (interest_rate_per_period), ((double ) ( -(number_of_periods))), "sample_code.calc", 225))), "sample_code.calc", 225));
		}
#function_end _calc_loan_repayments
	_calcsys_call_level--;
	return (result);
	}
	double _calc_toRadians( double *degrees )
	{
#function_start
_calc_toRadians
280
		_calcsys_err_filename[_calcsys_call_level] = "sample_code.calc";
		_calcsys_err_function_name[_calcsys_call_level] = "toRadians";
		_calcsys_err_linenumber[_calcsys_call_level] = 231;
		_calcsys_call_level++;


														// sample_code.calc:  Line: 231
														// {

		{


														// sample_code.calc:  Line: 232
														// 	var double one_deg;



														// sample_code.calc:  Line: 232
														// 	var double one_deg;



														// sample_code.calc:  Line: 234
														//     one_deg = CONST_PI / 180;

			one_deg = (div_check_0_double( 3.1415926535898, ((double ) ( 180)), "sample_code.calc", 234));


														// sample_code.calc:  Line: 236
														//     result = one_deg * degrees;

			result = ((one_deg) * ((*degrees)));
		}
#function_end _calc_toRadians
	_calcsys_call_level--;
	return (result);
	}
	double _calc_distance( double *lat1, double *long1, double *lat2, double *long2 )
	{
#function_start
_calc_distance
276
		_calcsys_err_filename[_calcsys_call_level] = "sample_code.calc";
		_calcsys_err_function_name[_calcsys_call_level] = "distance";
		_calcsys_err_linenumber[_calcsys_call_level] = 241;
		_calcsys_call_level++;


														// sample_code.calc:  Line: 241
														// {

		{


														// sample_code.calc:  Line: 242
														// 	var double dlong, dlat;



														// sample_code.calc:  Line: 242
														// 	var double dlong, dlat;



														// sample_code.calc:  Line: 242
														// 	var double dlong, dlat;



														// sample_code.calc:  Line: 243
														// 	var double ans, R;



														// sample_code.calc:  Line: 243
														// 	var double ans, R;



														// sample_code.calc:  Line: 243
														// 	var double ans, R;



														// sample_code.calc:  Line: 245
														//     lat1 = toRadians( lat1 );

			(*lat1) = _calc_toRadians( _calcsys_set_register_n( &_calcsys_register_n_0, (*lat1)) );


														// sample_code.calc:  Line: 246
														//     long1 = toRadians( long1 );

			(*long1) = _calc_toRadians( _calcsys_set_register_n( &_calcsys_register_n_1, (*long1)) );


														// sample_code.calc:  Line: 247
														//     lat2 = toRadians( lat2 );

			(*lat2) = _calc_toRadians( _calcsys_set_register_n( &_calcsys_register_n_2, (*lat2)) );


														// sample_code.calc:  Line: 248
														//     long2 = toRadians( long2 );

			(*long2) = _calc_toRadians( _calcsys_set_register_n( &_calcsys_register_n_3, (*long2)) );


														// sample_code.calc:  Line: 252
														//     dlong = long2 - long1;

			dlong = ((*long2)) - ((*long1));


														// sample_code.calc:  Line: 253
														//     dlat = lat2 - lat1;

			dlat = ((*lat2)) - ((*lat1));


														// sample_code.calc:  Line: 255
														//     ans = msin(dlat / 2) ^ 2 + mcos(lat1) * mcos(lat2) * msin(dlong / 2) ^ 2;

			ans = ((double_pow( _calc_msin( (div_check_0_double( dlat, ((double ) ( 2)), "sample_code.calc", 255)), 0, "sample_code.calc", 255 ), ((double ) ( 2)), "sample_code.calc", 255))) + (((((_calc_mcos( (*lat1), 0, "sample_code.calc", 255 )) * (_calc_mcos( (*lat2), 0, "sample_code.calc", 255 )))) * ((double_pow( _calc_msin( (div_check_0_double( dlong, ((double ) ( 2)), "sample_code.calc", 255)), 0, "sample_code.calc", 255 ), ((double ) ( 2)), "sample_code.calc", 255)))));


														// sample_code.calc:  Line: 257
														//     ans = 2 * marcsin( msqrt( ans ) );

			ans = ( (double) (((((double) ( 2))) * (_calc_marcsin( _calc_msqrt( ans, 0, "sample_code.calc", 257 ), 0, "sample_code.calc", 257 )))));


														// sample_code.calc:  Line: 263
														//     R = 6371;

			R = ( (double) (6371));


														// sample_code.calc:  Line: 266
														//     ans = ans * R;

			ans = ((ans) * (R));


														// sample_code.calc:  Line: 268
														//     result = ans;

			result = ans;
		}
#function_end _calc_distance
	_calcsys_call_level--;
	return (result);
	}
	
	
	void main_setup_tables()
	{
	_calcsys_num_function_table_items = 0;
	_calcsys_str_const_main_0 = malloc( 16 );
	((var *) _calcsys_str_const_main_0)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_0, "", true, 0 );
	_calcsys_str_const_main_25 = malloc( 16 );
	((var *) _calcsys_str_const_main_25)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_25, " per fortnight", true, 0 );
	_calcsys_str_const_main_12 = malloc( 16 );
	((var *) _calcsys_str_const_main_12)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_12, ")", true, 0 );
	_calcsys_str_const_main_1 = malloc( 16 );
	((var *) _calcsys_str_const_main_1)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_1, "0000-00-00", true, 0 );
	_calcsys_str_const_main_3 = malloc( 16 );
	((var *) _calcsys_str_const_main_3)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_3, "0000-00-00 99:99:99", true, 0 );
	_calcsys_str_const_main_5 = malloc( 16 );
	((var *) _calcsys_str_const_main_5)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_5, "1. Print the numbers from 1 to 10.", true, 0 );
	_calcsys_str_const_main_6 = malloc( 16 );
	((var *) _calcsys_str_const_main_6)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_6, "2. Generate a set of random numbers, insert them into a binary tree structure and produce a sorted output.", true, 0 );
	_calcsys_str_const_main_7 = malloc( 16 );
	((var *) _calcsys_str_const_main_7)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_7, "3. Calculate the distance between two points based on Latitude and Longitude.", true, 0 );
	_calcsys_str_const_main_10 = malloc( 16 );
	((var *) _calcsys_str_const_main_10)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_10, "4. Determine whether a year is a leap year.", true, 0 );
	_calcsys_str_const_main_16 = malloc( 16 );
	((var *) _calcsys_str_const_main_16)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_16, "5. Determine repayments on a loan.", true, 0 );
	_calcsys_str_const_main_2 = malloc( 16 );
	((var *) _calcsys_str_const_main_2)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_2, "99:99:99", true, 0 );
	_calcsys_str_const_main_23 = malloc( 16 );
	((var *) _calcsys_str_const_main_23)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_23, "</table>", true, 0 );
	_calcsys_str_const_main_18 = malloc( 16 );
	((var *) _calcsys_str_const_main_18)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_18, "<table>", true, 0 );
	_calcsys_str_const_main_19 = malloc( 16 );
	((var *) _calcsys_str_const_main_19)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_19, "<tr><td>Amount:</td><td>$50,000</td></tr>", true, 0 );
	_calcsys_str_const_main_21 = malloc( 16 );
	((var *) _calcsys_str_const_main_21)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_21, "<tr><td>Interest rate:</td><td>8%</td></tr>", true, 0 );
	_calcsys_str_const_main_22 = malloc( 16 );
	((var *) _calcsys_str_const_main_22)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_22, "<tr><td>Repayment frequency:</td><td>fortnightly</td></tr>", true, 0 );
	_calcsys_str_const_main_20 = malloc( 16 );
	((var *) _calcsys_str_const_main_20)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_20, "<tr><td>Term:</td><td>10 years</td></tr>", true, 0 );
	_calcsys_str_const_main_17 = malloc( 16 );
	((var *) _calcsys_str_const_main_17)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_17, "Example inputs:", true, 0 );
	_calcsys_str_const_main_11 = malloc( 16 );
	((var *) _calcsys_str_const_main_11)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_11, "Leap year: year 1900 (", true, 0 );
	_calcsys_str_const_main_13 = malloc( 16 );
	((var *) _calcsys_str_const_main_13)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_13, "Leap year: year 2000 (", true, 0 );
	_calcsys_str_const_main_14 = malloc( 16 );
	((var *) _calcsys_str_const_main_14)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_14, "Leap year: year 2001 (", true, 0 );
	_calcsys_str_const_main_15 = malloc( 16 );
	((var *) _calcsys_str_const_main_15)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_15, "Leap year: year 2004 (", true, 0 );
	_calcsys_str_const_main_24 = malloc( 16 );
	((var *) _calcsys_str_const_main_24)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_24, "Repayments are $", true, 0 );
	_calcsys_str_const_main_8 = malloc( 16 );
	((var *) _calcsys_str_const_main_8)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_8, "The distance between Paris and New York is ", true, 0 );
	_calcsys_str_const_main_9 = malloc( 16 );
	((var *) _calcsys_str_const_main_9)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_9, "km", true, 0 );
	_calcsys_str_const_main_26 = malloc( 16 );
	((var *) _calcsys_str_const_main_26)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_26, "no", true, 0 );
	_calcsys_str_const_main_4 = malloc( 16 );
	((var *) _calcsys_str_const_main_4)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_4, "stdlib.calch", true, 0 );
	_calcsys_str_const_main_27 = malloc( 16 );
	((var *) _calcsys_str_const_main_27)->var_type = VAR_EMPTY;
	_calcsys_var_set_s( (var *) _calcsys_str_const_main_27, "yes", true, 0 );
	
	
	i25 = 0;
	i26 = 0;
	}
	
	
	int stdlib_link_variable;
	void stdlib_setup_tables();
	int _main_link_variable;
	int main( int argc, char *argv[] )
	{
		int i;
		rarray *rarray_ptr;
		long int _argc, exit_code;
		char *ptr1, *ptr2;
		var _argv[MAX_ARGC];
		var _argv2;
		is_web_page = false;
		_calcsys_call_level = 0;
		main_setup_tables();
		stdlib_setup_tables();
		memset( (char *) _argv, 0, 16 * MAX_ARGC );
		rarray_ptr = _malloc( sizeof( rarray ) );
		rarray_ptr->number_of_dimensions = 1;
		rarray_ptr->sizeof_array_element = 16;
		rarray_ptr->index_size[0] = argc;
		rarray_ptr->total_size = argc * 16;
		ptr2 = _malloc( rarray_ptr->total_size );
		memset( ptr2, 0, rarray_ptr->total_size );
		rarray_ptr->datap = ptr2;
		for (i=0; i < argc && i < MAX_ARGC; i++)
		{
			_calcsys_var_set_s( (var *) (ptr2 + i * 16), argv[i], false, 0 );
		}
		_argv2.var_type = VAR_RESIZABLE_ARRAY;
		_argv2.data.pvalue = rarray_ptr;
		_argc = argc;
		if (argc > MAX_ARGC)
			argc = MAX_ARGC;
		
				
					if (argc < 3)
					{
						ptr1 = NULL;
						ptr2 = NULL;	
					}
					else
					{
						ptr1 = argv[1];
						ptr2 = argv[2];
					}
							
					get_and_post_filename = "";
				
					redirect_filename = "";
				
					calc_stdlib_init( ptr1 ); 
		exit_code = _calc_main( &_argc, (char *) &_argv2 );
		calc_stdlib_exit( get_and_post_filename );
		exit( exit_code );
	}
