File:  [LON-CAPA] / loncom / homework / caparesponse / capa.i
Revision 1.6: download - view: text, annotated - select for diffs
Tue Nov 16 23:37:40 2004 UTC (19 years, 6 months ago) by albertel
Branches: MAIN
CVS tags: version_2_9_X, version_2_9_99_0, version_2_9_1, version_2_9_0, version_2_8_X, version_2_8_99_1, version_2_8_99_0, version_2_8_2, version_2_8_1, version_2_8_0, version_2_7_X, version_2_7_99_1, version_2_7_99_0, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_11_X, version_2_11_4_uiuc, version_2_11_4_msu, version_2_11_4, version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, version_2_11_1, version_2_11_0_RC3, version_2_11_0_RC2, version_2_11_0_RC1, version_2_11_0, version_2_10_X, version_2_10_1, version_2_10_0_RC2, version_2_10_0_RC1, version_2_10_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_99_1, version_1_2_99_0, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, bz6209-base, bz6209, bz5969, bz2851, PRINT_INCOMPLETE_base, PRINT_INCOMPLETE, HEAD, GCI_3, GCI_2, GCI_1, BZ5971-printing-apage, BZ5434-fox, BZ4492-merge, BZ4492-feature_horizontal_radioresponse, BZ4492-feature_Support_horizontal_radioresponse, BZ4492-Support_horizontal_radioresponse
- BUG#2826 $result=capa::caparesponse_get_real_response($correct_unit,$student_answer,\$scaled_answer);
        - given a unit, and a student answer, $scaled_answer will be set to the floating point number that is what capa would use to compare to the 'correct answer'
        - $result is an interger return code check capaCommon.h for possible values

    1: %module capa
    2: %{
    3: 
    4: %}
    5: 
    6: %typemap(perl5,in) char** reterror (char* cvalue) {
    7:   SV* tempsv;
    8:   int len;
    9:   if (!SvROK($source)) {
   10:     croak("expected a reference\n");
   11:   }
   12:   tempsv = SvRV($source);
   13:   if ((!SvPOK(tempsv))) {
   14:     croak("expected a double reference\n");
   15:   }
   16:   cvalue = SvPV(tempsv,len);
   17:   $target = &cvalue;
   18: }
   19: 
   20: %typemap(perl5,argout) char ** reterror {
   21:   SV *tempsv;
   22:   tempsv = SvRV($arg);
   23:   if (($source!=NULL) && (*$source!=NULL)) {
   24:     sv_setpv(tempsv, *$source);
   25:     free(*$source);
   26:   }
   27: }
   28: 
   29: %typemap(perl5,in) double* scaled {
   30:   double *temp;
   31:   if (!SvROK($source)) {
   32:     croak("expected a reference\n");
   33:   }
   34:   SV* tempsv;
   35:   tempsv = SvRV($source);
   36:   if (!SvPOK(tempsv) && !SvIOK(tempsv) && !SvNOK(tempsv)) {
   37:     croak("expected a single reference to a scalar\n");
   38:   }
   39:   temp = malloc(sizeof(double));
   40:   *temp = SvNV(tempsv);
   41:   $target = temp;
   42: }
   43: 
   44: %typemap(perl5,argout) double* scaled {
   45:   SV *tempsv;
   46:   tempsv = SvRV($arg);
   47:   sv_setnv(tempsv, *$source);
   48:   free($source);
   49: }
   50: 
   51: 
   52: extern int caparesponse_capa_check_answer(char *response,char *correct,
   53: 				   int type,int tol_type,double tolerance,
   54: 				   int sig_lbound,int sig_ubound, 
   55: 				   char *ans_fmt, char *unit_str,
   56: 				   int calc, char *id_list, char *pts_list,
   57: 				   char *rndseed, char** reterror);
   58: 
   59: extern int caparesponse_get_real_response(char* unit_str, char* answer,
   60: 					  double* scaled);

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>