int jmi_init_opt_dh(jmi_init_opt_t *jmi_init_opt, jmi_real_t *jac) { jmi_t* jmi; int retval; if (jmi_init_opt->jmi->init == NULL || jmi_init_opt->jmi->dae == NULL) { return -1; } jmi = jmi_init_opt->jmi; /* Copy values into jmi->z */ /* Copy free paramters */ copy_p(jmi_init_opt); /* Copy variables */ copy_v(jmi_init_opt); /* Evaluate jacobian */ retval = jmi_init_dF0 (jmi, jmi_init_opt->der_eval_alg, JMI_DER_SPARSE, JMI_DER_PI | JMI_DER_PD | JMI_DER_DX | JMI_DER_X | JMI_DER_W, jmi_init_opt->der_mask_v, jac); if (jmi_init_opt->stat==1 && jmi_init_opt->jmi->opt->Ffdp->n_eq_F>0) { jmi_opt_dFfdp (jmi, jmi_init_opt->der_eval_alg, JMI_DER_SPARSE, JMI_DER_PI | JMI_DER_PD | JMI_DER_DX | JMI_DER_X | JMI_DER_W, jmi_init_opt->der_mask_v, jac + jmi_init_opt->dF0_n_nz); } return retval; }
int jmi_init_opt_h(jmi_init_opt_t *jmi_init_opt, jmi_real_t *res) { int retval; if (jmi_init_opt->jmi->init == NULL || jmi_init_opt->jmi->dae == NULL) { return -1; } /*int i; */ /* Copy values into jmi->z */ /* Copy free paramters */ copy_p(jmi_init_opt); /* Copy variables */ copy_v(jmi_init_opt); /* for (i=0;i<jmi_init_opt->n_x;i++) { printf("%f\n",jmi_init_opt->x[i]); } */ retval = jmi_init_F0(jmi_init_opt->jmi, res); if (jmi_init_opt->stat==1 && jmi_init_opt->jmi->opt->Ffdp->n_eq_F>0) { retval = jmi_opt_Ffdp(jmi_init_opt->jmi, res+jmi_init_opt->jmi->init->F0->n_eq_F); } /* printf("F0\n"); for (i=0;i<jmi_init_opt->jmi->init->F1->n_eq_F;i++) { printf("%f\n",res[i]); } */ return retval; }
int jmi_init_opt_f(jmi_init_opt_t *jmi_init_opt, jmi_real_t *f) { int i; int retval; if (jmi_init_opt->jmi->init == NULL) { return -1; } /* Copy values into jmi->z */ /* Copy free paramters */ copy_p(jmi_init_opt); /* Copy variables */ copy_v(jmi_init_opt); *f = 0.0; if (jmi_init_opt->stat==1) { retval = jmi_opt_J(jmi_init_opt->jmi, f); } else { retval = jmi_init_F1(jmi_init_opt->jmi, jmi_init_opt->res_F1); if (retval<0) { return retval; } for (i=0;i<jmi_init_opt->jmi->init->F1->n_eq_F;i++) { /* Call cost function evaluation */ *f += 0.5*jmi_init_opt->res_F1[i]*jmi_init_opt->res_F1[i]; } } return retval; }
void Connection::addData(unsigned char * payload, uint size_payload, Packet packet) { if (BUFFER_ALLOCATE - buffer_size < size_payload) { fprintf(stderr, "Something went wrong, unable to add payload to Connection buffer.\n"); return; } memcpy(buffer + buffer_size, payload, size_payload); uint start_pos = buffer_size; buffer_size += size_payload; uint packet_size = packet.header.caplen; unsigned char * copy_packet = new unsigned char [packet_size]; memcpy(copy_packet, packet.packet, packet_size); Packet copy_p(copy_packet, packet.header); packet_map[start_pos] = copy_p; }
int jmi_init_opt_df(jmi_init_opt_t *jmi_init_opt, jmi_real_t *df) { int i; int retval; jmi_t* jmi; if (jmi_init_opt->jmi->init == NULL) { return -1; } jmi = jmi_init_opt->jmi; /* Copy values into jmi->z */ /* Copy free paramters */ copy_p(jmi_init_opt); /* Copy variables */ copy_v(jmi_init_opt); for (i=0;i<jmi_init_opt->n_x;i++) { df[i] = 0; /*printf("%f\n",jmi_init_opt->x[i]); */ } if (jmi_init_opt->stat==1) { retval = jmi_opt_dJ(jmi_init_opt->jmi, jmi_init_opt->der_eval_alg, JMI_DER_DENSE_COL_MAJOR, JMI_DER_PI | JMI_DER_PD | JMI_DER_DX | JMI_DER_X | JMI_DER_W, jmi_init_opt->der_mask_v,df); } else { /* Evaluate jacobian */ retval = jmi_init_dF1(jmi, jmi_init_opt->der_eval_alg, JMI_DER_SPARSE, JMI_DER_PI | JMI_DER_PD | JMI_DER_DX | JMI_DER_X | JMI_DER_W, jmi_init_opt->der_mask_v, jmi_init_opt->dF1_dv); if (retval<0) { return retval; } /* printf("dF1\n"); for (i=0;i<jmi_init_opt->dF1_dv_n_nz;i++) { printf("%f\n",jmi_init_opt->dF1_dv[i]); } */ /* Evaluate residual */ retval = jmi_init_F1(jmi, jmi_init_opt->res_F1); if (retval<0) { return retval; } /* Initialize the gradient vector */ for (i=0;i<jmi_init_opt->n_x;i++) { df[i] = 0.; } /* Compute gradient */ for (i=0;i<jmi_init_opt->dF1_dv_n_nz;i++) { df[jmi_init_opt->dF1_dv_icol[i]-1] += jmi_init_opt->dF1_dv[i]* jmi_init_opt->res_F1[jmi_init_opt->dF1_dv_irow[i]-1]; /* printf("** %d %d %d %f %f \n",i,jmi_init_opt->dF1_dv_irow[i],jmi_init_opt->dF1_dv_icol[i],jmi_init_opt->dF1_dv[i],jmi_init_opt->res_F1[jmi_init_opt->dF1_dv_irow[i]-1]); */ } /* for(i=0;i<jmi_init_opt->n_x;i++) { printf("%f\n",df[i]); } */ } return retval; }