translate.h

Go to the documentation of this file.
00001 
00006 /* $Id: translate.h,v 1.7 2007/03/05 20:52:40 seymour Exp $ */
00007 /* $UTK_Copyright: $ */
00008 
00009 /* For debug use: */
00010 void
00011   debug_print(char *),
00012   print_array(int, int, double *);
00013 
00014 /* Truncate "()" from the function name if necessary */
00015 int trunc_fname(char *);
00016 
00017 /* The key transformation function */
00018 int convert_idl(gs_problem_t *, IDL_VPTR *);
00019 
00020 /* After each gridsolve function call, it will free the tmp-allocated 
00021  * storage and copy the output to IDL's VPTR whenever necessary.
00022  */
00023 int postproc_argv_c(gs_problem_t *, IDL_VPTR *);
00024 
00025 /***********  The following are internal routines  *********/
00026 
00027 /* Macro for copying data from array a to array b, where b has type TYPEB */
00028 
00029 #define COPY_A_TO_B(TYPEA, TYPEB, size, a, b)  {int ss = 0; \
00030 TYPEA* ss_a = (TYPEA*) a; TYPEB* ss_b = (TYPEB*) b; \
00031 for (ss = 0; ss < size; ss++) *((ss_b)++) = (TYPEB) *((ss_a)++);}
00032 
00033 int
00034   assign_arg(gs_argument_t *, IDL_VPTR),
00035   analyze_arg_pass_mode(gs_argument_t *),
00036   copy_scalar_input(gs_argument_t *, IDL_VPTR),
00037   copy_ptr_input(gs_argument_t *, IDL_VPTR),
00038   check_ptr_inout(gs_argument_t *, IDL_VPTR),
00039   copy_ptr_output(gs_argument_t *, IDL_VPTR),
00040   translate_array_input (gs_argument_t *, IDL_VPTR),
00041   translate_string_input(gs_argument_t *, IDL_VPTR),
00042   translate_scalar_input(IDL_VPTR, void *, int),
00043   translate_array_output (gs_argument_t *, IDL_VPTR),
00044   is_input_upcasted(IDL_VPTR, int, int);