/* * Class: com_google_gwt_dev_shell_moz_LowLevelMoz * Method: _executeScriptWithInfo * Signature: (ILjava/lang/String;Ljava/lang/String;I)Z */ extern "C" JNIEXPORT jboolean JNICALL Java_com_google_gwt_dev_shell_moz_LowLevelMoz__1executeScriptWithInfo (JNIEnv* env, jclass llClass, jint scriptObjectInt, jstring code, jstring file, jint line) { Tracer tracer("LowLevelMoz._executeScriptWithInfo"); JStringWrap jcode(env, code); if (!jcode.jstr()) { tracer.setFail("null code string"); return JNI_FALSE; } JStringWrap jfile(env, file); if (!jfile.str()) { tracer.setFail("null file name"); return JNI_FALSE; } tracer.log("code=%s, file=%s, line=%d", jcode.str(), jfile.str(), line); JSContext* cx = JsRootedValue::currentContext(); nsCOMPtr<nsIScriptContext> scriptContext(GetScriptContextFromJSContext(cx)); nsIScriptGlobalObject* scriptObject = NS_REINTERPRET_CAST(nsIScriptGlobalObject*, scriptObjectInt); JSObject* scriptWindow = reinterpret_cast<JSObject*>(scriptObject->GetGlobalJSObject()); nsXPIDLString scriptString; scriptString = jcode.jstr(); nsXPIDLString aRetValue; PRBool aIsUndefined; if (NS_FAILED(scriptContext->EvaluateString(scriptString, scriptWindow, 0, jfile.str(), line, 0, aRetValue, &aIsUndefined))) { tracer.setFail("EvaluateString failed"); return JNI_FALSE; } return JNI_TRUE; }
static void compute_VECM_dataset (irfboot *b, GRETL_VAR *var, int iter) { int order = var->order + 1; int nexo = (var->xlist != NULL)? var->xlist[0] : 0; int nseas = var->jinfo->seasonals; double cij, eti, xti; int i, j, k, s, t; #if BDEBUG fprintf(stderr, "compute_VECM_dataset: order=%d, nexo=%d, nseas=%d, t1=%d\n", order, nexo, nseas, var->t1); gretl_matrix_print(var->X, "var->X, before resampling"); #endif for (t=var->t1, s=0; t<=var->t2; t++, s++) { for (i=0; i<var->neqns; i++) { double bti = 0.0; int xcol = var->ifc + var->neqns * var->order; int col = 0; /* unrestricted constant, if present */ if (var->ifc) { cij = gretl_matrix_get(b->C0, i, col++); bti += cij; } /* lags of endogenous vars */ for (j=1; j<=var->neqns; j++) { for (k=1; k<=order; k++) { cij = gretl_matrix_get(b->C0, i, col++); bti += cij * b->dset->Z[j][t-k]; } } /* exogenous vars, if present */ for (j=0; j<nexo; j++) { cij = gretl_matrix_get(b->C0, i, col++); xti = gretl_matrix_get(var->X, s, xcol++); bti += cij * xti; } /* seasonals, if present */ for (j=0; j<nseas; j++) { cij = gretl_matrix_get(b->C0, i, col++); xti = gretl_matrix_get(var->X, s, xcol++); bti += cij * xti; } if (jcode(var) == J_UNREST_TREND) { /* unrestricted trend */ cij = gretl_matrix_get(b->C0, i, col++); bti += cij * (t + 1); } else if (jcode(var) == J_REST_CONST) { /* restricted constant */ bti += gretl_matrix_get(b->C0, i, col++); } else if (jcode(var) == J_REST_TREND) { /* restricted trend */ cij = gretl_matrix_get(b->C0, i, col++); bti += cij * t; } /* restricted exogenous vars, if present */ if (var->rlist != NULL) { for (j=1; j<=var->rlist[0]; j++) { cij = gretl_matrix_get(b->C0, i, col++); bti += cij * b->dset->Z[j+var->neqns][t-1]; } } /* set level of Y(t, i) to fitted value + re-sampled error */ eti = gretl_matrix_get(b->rE, s, i); b->dset->Z[i+1][t] = bti + eti; } } #if BDEBUG > 1 fprintf(stderr, "VECM: recomputed levels\n\n"); for (t=0; t<b->dset->n; t++) { for (i=1; i<=var->neqns; i++) { fprintf(stderr, "%12.5g", b->dset->Z[i][t]); } fputc('\n', stderr); } #endif /* now rewrite lagged differences into X matrix */ k = var->ifc; for (i=1; i<=var->neqns; i++) { for (j=1; j<=var->order; j++) { s = 0; for (t=var->t1; t<=var->t2; t++) { xti = b->dset->Z[i][t-j] - b->dset->Z[i][t-j-1]; gretl_matrix_set(var->X, s++, k, xti); } k++; } } #if BDEBUG > 1 gretl_matrix_print(var->X, "var->X (vecm, resampled)"); #endif }
gretl_matrix *VAR_coeff_matrix_from_VECM (const GRETL_VAR *var) { gretl_matrix *C0 = NULL; gretl_matrix *rbeta = NULL; int order = var->order + 1; int nexo = (var->xlist != NULL)? var->xlist[0] : 0; int ndelta = var->order * var->neqns; int nseas = var->jinfo->seasonals; int nr = n_restricted_terms(var); int ncoeff; int X0, S0, T0; double aij; int i, j, k; /* total coeffs in VAR representation */ ncoeff = var->ncoeff + (var->neqns - var->jinfo->rank) + nr; if (nr > 0) { rbeta = make_restricted_coeff_matrix(var); if (rbeta == NULL) { return NULL; } } C0 = gretl_matrix_alloc(var->neqns, ncoeff); if (C0 == NULL) { gretl_matrix_free(rbeta); return NULL; } /* position of first exog var coeff in VECM model */ X0 = var->ifc + ndelta; /* position of first seasonal coeff in VECM model */ S0 = X0 + nexo; /* position of trend coeff in VECM model */ T0 = S0 + nseas; for (i=0; i<var->neqns; i++) { const MODEL *pmod = var->models[i]; int col = 0; /* constant, if present */ if (var->ifc) { gretl_matrix_set(C0, i, col++, pmod->coeff[0]); } /* endogenous vars: use companion matrix */ for (j=0; j<var->neqns; j++) { for (k=0; k<order; k++) { aij = gretl_matrix_get(var->A, i, k * var->neqns + j); gretl_matrix_set(C0, i, col++, aij); } } /* exogenous vars */ for (j=0; j<nexo; j++) { gretl_matrix_set(C0, i, col++, pmod->coeff[X0+j]); } /* seasonals, if present */ for (j=0; j<nseas; j++) { gretl_matrix_set(C0, i, col++, pmod->coeff[S0+j]); } /* unrestricted trend, if present */ if (jcode(var) == J_UNREST_TREND) { gretl_matrix_set(C0, i, col++, pmod->coeff[T0]); } /* additional restricted term(s), if present */ if (rbeta != NULL) { for (j=0; j<nr; j++) { aij = gretl_matrix_get(rbeta, i, j); gretl_matrix_set(C0, i, col++, aij); } } } if (rbeta != NULL) { gretl_matrix_free(rbeta); } #if BDEBUG > 1 gretl_matrix_print(var->A, "var->A"); gretl_matrix_print(C0, "C0"); #endif return C0; }