double Fex_H2O_FittedCorrelations::compute(const ScalarFieldTilde* Ntilde, ScalarFieldTilde* Phi_Ntilde) const { double PhiEx = 0.0; //Quadratic part: ScalarFieldTilde V_O = double(gInfo.nr)*(COO*Ntilde[0] + COH*Ntilde[1]); Phi_Ntilde[0] += V_O; ScalarFieldTilde V_H = double(gInfo.nr)*(COH*Ntilde[0] + CHH*Ntilde[1]); Phi_Ntilde[1] += V_H; PhiEx += 0.5*gInfo.dV*(dot(V_O,Ntilde[0]) + dot(V_H,Ntilde[1])); //Compute gaussian weighted densities: ScalarField NObar = I(fex_gauss*Ntilde[0]), Phi_NObar; nullToZero(Phi_NObar, gInfo); ScalarField NHbar = I(fex_gauss*Ntilde[1]), Phi_NHbar; nullToZero(Phi_NHbar, gInfo); //Evaluated weighted density functional: #ifdef GPU_ENABLED ScalarField fex(ScalarFieldData::alloc(gInfo,isGpuEnabled())); Fex_H20_FittedCorrelations_gpu(gInfo.nr, NObar->dataGpu(), NHbar->dataGpu(), fex->dataGpu(), Phi_NObar->dataGpu(), Phi_NHbar->dataGpu()); PhiEx += integral(fex); #else PhiEx += gInfo.dV*threadedAccumulate(Fex_H2O_FittedCorrelations_calc, gInfo.nr, NObar->data(), NHbar->data(), Phi_NObar->data(), Phi_NHbar->data()); #endif //Convert gradients: Phi_Ntilde[0] += fex_gauss*Idag(Phi_NObar); Phi_Ntilde[1] += fex_gauss*Idag(Phi_NHbar); return PhiEx; }
int main(int argc, char **argv) { if(argc != 3) { std::cout << "doorspr: Door sprite utility\nUsage: doorspr <source> <dest>\n"; return 0; } allegro_init(); set_color_depth(32); BITMAP *src = load_bitmap(argv[1], 0); BITMAP *newDest; if(fex(argv[2])) { BITMAP *oldDest; oldDest = load_bitmap(argv[2], 0); newDest = create_bitmap(60, oldDest->h + 45 * 4); clear_to_color(newDest, 0xFF00FF); draw_sprite(newDest, oldDest, 0, 0); destroy_bitmap(oldDest); } else { newDest = create_bitmap(60, 45 * 4); clear_to_color(newDest, 0xFF00FF); } for(int i = 0; i < 4; i++) { blit(src, newDest, 0, i * (src->h / 4), 30 - (src->w / 2), newDest->h - ((3 - i) * 45) - (src->h / 4), src->w, src->h / 4); } save_bitmap(argv[2], newDest, 0); return 0; }
FRFXLL_RESULT FRFXLLCreateFeatureSet( FRFXLL_HANDLE hContext, ///< [in] Handle to a fingerprint recognition context const unsigned char fpData[], ///< [in] sample size_t size, ///< [in] size of the sample buffer FRFXLL_DATA_TYPE dataType, ///< [in] type of the sample, for instance image format unsigned int flags, ///< [in] Set to 0 for default or bitwise or of any of the FRFXLL_FEX_xxx flags FRFXLL_HANDLE_PT phFeatureSet ///< [out] pointer to where to put an open handle to the feature set ) { if (fpData == NULL) return CheckResult(FRFXLL_ERR_INVALID_PARAM); if (phFeatureSet == NULL) return CheckResult(FRFXLL_ERR_INVALID_PARAM); CheckInvalidFlagsCombinationR(flags, FRFXLL_FEX_DISABLE_ENHANCEMENT | FRFXLL_FEX_ENABLE_ENHANCEMENT); Ptr<const Context> ctx(hContext); if (!ctx) return CheckResult(FRFXLL_ERR_INVALID_HANDLE); Ptr<FexObj> fex(new(ctx) FexObj(ctx)); if (!fex) return CheckResult(FRFXLL_ERR_NO_MEMORY); return fex->CreateFeatureSet(fpData, size, dataType, flags, phFeatureSet); }
double true_Ev_rate(double Te, double ne, double *nv){ // Calculate the Instanteneous rate of energy/m3 change double nvdot[34], data[2], Ei, Evdot; int i; data[0] = Te; data[1] = ne; // Call rate of change function to set nvdot fex(0.0, nv, nvdot, data); // particles/m3/s Evdot = 0.0; for (i = 0; i< 34; i++) { Ei = 6.626067E-34*7.08E13*i; // J/particle Evdot += nvdot[i]*Ei; // J/m3/s } return Evdot; }