krb5_error_code KRB5_CALLCONV krb5int_accessor(krb5int_access *internals, krb5_int32 version) { if (version == KRB5INT_ACCESS_VERSION) { #if DESIGNATED_INITIALIZERS #define S(FIELD, VAL) .FIELD = VAL #if defined __GNUC__ && __STDC_VERSION__ < 199901L __extension__ #endif static const krb5int_access internals_temp = { #else #define S(FIELD, VAL) internals_temp.FIELD = VAL krb5int_access internals_temp; #endif S (arcfour_gsscrypt, krb5int_arcfour_gsscrypt), S (auth_con_get_subkey_enctype, krb5_auth_con_get_subkey_enctype), S (clean_hostname, krb5int_clean_hostname), S (mandatory_cksumtype, krb5int_c_mandatory_cksumtype), #ifndef LEAN_CLIENT #define SC(FIELD, VAL) S(FIELD, VAL) #else /* disable */ #define SC(FIELD, VAL) S(FIELD, 0) #endif SC (ser_pack_int64, krb5_ser_pack_int64), SC (ser_unpack_int64, krb5_ser_unpack_int64), #undef SC #ifdef ENABLE_LDAP #define SC(FIELD, VAL) S(FIELD, VAL) #else #define SC(FIELD, VAL) S(FIELD, 0) #endif SC (asn1_ldap_encode_sequence_of_keys, krb5int_ldap_encode_sequence_of_keys), SC (asn1_ldap_decode_sequence_of_keys, krb5int_ldap_decode_sequence_of_keys), #undef SC #ifndef DISABLE_PKINIT #define SC(FIELD, VAL) S(FIELD, VAL) #else /* disable */ #define SC(FIELD, VAL) S(FIELD, 0) #endif SC (encode_krb5_pa_pk_as_req, encode_krb5_pa_pk_as_req), SC (encode_krb5_pa_pk_as_req_draft9, encode_krb5_pa_pk_as_req_draft9), SC (encode_krb5_pa_pk_as_rep, encode_krb5_pa_pk_as_rep), SC (encode_krb5_pa_pk_as_rep_draft9, encode_krb5_pa_pk_as_rep_draft9), SC (encode_krb5_auth_pack, encode_krb5_auth_pack), SC (encode_krb5_auth_pack_draft9, encode_krb5_auth_pack_draft9), SC (encode_krb5_kdc_dh_key_info, encode_krb5_kdc_dh_key_info), SC (encode_krb5_reply_key_pack, encode_krb5_reply_key_pack), SC (encode_krb5_reply_key_pack_draft9, encode_krb5_reply_key_pack_draft9), SC (encode_krb5_typed_data, encode_krb5_typed_data), SC (encode_krb5_td_trusted_certifiers, encode_krb5_td_trusted_certifiers), SC (encode_krb5_td_dh_parameters, encode_krb5_td_dh_parameters), SC (decode_krb5_pa_pk_as_req, decode_krb5_pa_pk_as_req), SC (decode_krb5_pa_pk_as_req_draft9, decode_krb5_pa_pk_as_req_draft9), SC (decode_krb5_pa_pk_as_rep, decode_krb5_pa_pk_as_rep), SC (decode_krb5_pa_pk_as_rep_draft9, decode_krb5_pa_pk_as_rep_draft9), SC (decode_krb5_auth_pack, decode_krb5_auth_pack), SC (decode_krb5_auth_pack_draft9, decode_krb5_auth_pack_draft9), SC (decode_krb5_kdc_dh_key_info, decode_krb5_kdc_dh_key_info), SC (decode_krb5_principal_name, decode_krb5_principal_name), SC (decode_krb5_reply_key_pack, decode_krb5_reply_key_pack), SC (decode_krb5_reply_key_pack_draft9, decode_krb5_reply_key_pack_draft9), SC (decode_krb5_typed_data, decode_krb5_typed_data), SC (decode_krb5_td_trusted_certifiers, decode_krb5_td_trusted_certifiers), SC (decode_krb5_td_dh_parameters, decode_krb5_td_dh_parameters), SC (decode_krb5_as_req, decode_krb5_as_req), SC (encode_krb5_kdc_req_body, encode_krb5_kdc_req_body), SC (free_kdc_req, krb5_free_kdc_req), SC (set_prompt_types, krb5int_set_prompt_types), SC (encode_krb5_authdata_elt, encode_krb5_authdata_elt), #undef SC S (encode_krb5_sam_response_2, encode_krb5_sam_response_2), S (encode_krb5_enc_sam_response_enc_2, encode_krb5_enc_sam_response_enc_2), #if DESIGNATED_INITIALIZERS }; #else 0; #endif *internals = internals_temp; return 0; }
int gaussSeidel(MAT &A,VEC b,VEC &x,int maxIter,double tol) { int n = A.dim(); VEC S(n); VEC G(n); VEC tmp(n); MAT L(n); VEC cpr(n); //iterative int k=0; double err1; double err2; double errinf; double diff1,diff2,diffinf; while(k<maxIter){ for(int i=0;i<n;i++){ S[i] = 0; } for(int i=0;i<n;i++){ G[i] = A[i][i]; tmp[i] = x[i]; for(int j=0;j<n;j++){ if(j!=i){ S[i] = S[i] + A[i][j]*x[j]; } } x[i] = (1/G[i])*(b[i]-S[i]); //both x[i] and S[i] are computed in the same for loop, so some updated values are used in the current iteration } k++; err1 = 0; err2 = 0; errinf = 0; for(int i=0;i<n;i++){ err1 += fabs(x[i] - tmp[i]); err2 += pow(x[i] - tmp[i], 2); errinf = max(errinf,fabs(x[i]-tmp[i])); } err2 = pow(err2,0.5); if(err1<tol){ break; } } diff1 = 0; diff2 = 0; diffinf = 0; //the answer from hw4 L = cholesky(A); //in-place Cholesky Decomposition cpr = choSolve(L,b); //solve the linear system by forward and backward substitution //use the same method to compute the error between hw4 and hw5, see if < 10^-7. if not, decrease the tol for(int i=0;i<n;i++){ diff1 += fabs(x[i] - cpr[i]); diff2 += pow(x[i] - cpr[i], 2); diffinf = max(diffinf,fabs(x[i]-cpr[i])); } diff2 = pow(diff2,0.5); printf("error between hw4 and hw5(1-norm 2-norm infinity-norm): %e %e %e\n",diff1,diff2,diffinf); return k; }
static void S::poo() { throw S(); }
I(power_cubes), {0} #undef _OFS }; static const save_field_t clientfields[] = { #define _OFS CLOFS I(ps.pmove.pm_type), SA(ps.pmove.origin, 3), SA(ps.pmove.velocity, 3), B(ps.pmove.pm_flags), B(ps.pmove.pm_time), S(ps.pmove.gravity), SA(ps.pmove.delta_angles, 3), V(ps.viewangles), V(ps.viewoffset), V(ps.kick_angles), V(ps.gunangles), V(ps.gunoffset), I(ps.gunindex), I(ps.gunframe), FA(ps.blend, 4), F(ps.fov),
void display(void) { printError("pre display"); static float time = 0; // clear the screen glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Upload camera matrix mat4 cameraMatrix = lookAt(cameraPos.x, cameraPos.y, cameraPos.z, targetPos.x, targetPos.y, targetPos.z, upVector.x, upVector.y, upVector.z); // Skybox glDisable(GL_DEPTH_TEST); mat4 scale = S(100, 100, 100); mat4 skybox_matrix = cameraMatrix; skybox_matrix.m[3] = 0; skybox_matrix.m[7] = 0; skybox_matrix.m[11] = 0; skybox_matrix.m[15] = 1; // Upload time glUniform1f(glGetUniformLocation(program, "gTime"), time); // Default camera for all other renders except the skybox glUniformMatrix4fv(glGetUniformLocation(program, "gView"), 1, GL_TRUE, skybox_matrix.m); glUniformMatrix4fv(glGetUniformLocation(program, "gWorld"), 1, GL_TRUE, scale.m); glUniform1i(glGetUniformLocation(program, "skybox_active"), 1); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, skybox_texture); DrawModel(skybox, program, "InPosL", "InNormalL", "InTex"); glUniform1i(glGetUniformLocation(program, "skybox_active"), 0); glEnable(GL_DEPTH_TEST); // Default camera for all other renders except the skybox glUniformMatrix4fv(glGetUniformLocation(program, "gView"), 1, GL_TRUE, cameraMatrix.m); // Eye position GLfloat eyePos[] = { cameraPos.x, cameraPos.y, cameraPos.z }; glUniform3fv(glGetUniformLocation(program, "gEyePosW"), 1, eyePos); // Ground (multitextured) scale = S(10, 10, 10); glUniformMatrix4fv(glGetUniformLocation(program, "gWorld"), 1, GL_TRUE, scale.m); glUniform1i(glGetUniformLocation(program, "multitexturing"), 1); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, grass_texture); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, conc_texture); DrawModel(ground, program, "InPosL", "InNormalL", "InTex"); glUniform1i(glGetUniformLocation(program, "multitexturing"), 0); // Castle scale = S(1, 1, 1); mat4 trans = T(0, 0, 50); glBindTexture(GL_TEXTURE_2D, conc_texture); glUniformMatrix4fv(glGetUniformLocation(program, "gWorld"), 1, GL_TRUE, Mult(trans, scale).m); DrawModel(castle, program, "InPosL", "InNormalL", "InTex"); // Windmill render_windmill(&windmill, program, time); glutSwapBuffers(); time += 0.01; }
Node* Node::removeChild(Node *oldChild) { //ASSERT(0); #if 0 // Do this first? { CComQIPtr<INotifySend> cp = thisNode; if (cp) { cp->FireOnChanged(NOTIFY_REMOVE, oldChild, DISPID_UNKNOWN); } } #endif Document* ownerDocument = oldChild->get_ownerDocument(); if (ownerDocument) { ASSERT(ownerDocument != NULL); DocumentEvent* ownerDocumentEvent = dynamic_cast<DocumentEvent*>(ownerDocument); ASSERT(ownerDocumentEvent != NULL); MutationEvent* evt = dynamic_cast<MutationEvent*>(ownerDocumentEvent->createEvent(S("MutationEvent"))); // Create a DOMNodeRemoved event evt->initMutationEvent(S("DOMNodeRemoved"), true, false, this, nullptr, nullptr, nullptr, CHANGE_UNKNOWN); EventTarget* target = dynamic_cast<EventTarget*>(oldChild); target->dispatchEvent(evt); NodeRemovedFromDocument(oldChild); } // Do the work ChildNode* previous = oldChild->get_previousSibling(); ChildNode* next = oldChild->get_nextSibling(); if (previous != NULL) previous->set_nextSibling(next); else m_firstChild = next; if (next != NULL) next->set_previousSibling(previous); else m_lastChild = previous; oldChild->set_previousSibling(nullptr); oldChild->set_nextSibling(nullptr); for (int i = 0; i < m_childNodes->m_items.GetSize(); ++i) { if (m_childNodes->m_items[i] == oldChild) { #if 0 ASSERT(0); ///////// CComQIPtr<INotifySend, &IID_INotifySend> cp = (IUnknown*)oldChild; if (cp) { CComQIPtr<INotifyGet, &IID_INotifyGet> get = (IUnknown*)thisNode; if (get) { cp->Unadvise(get); } } #endif ///////// // m_childNodes->m_items.erase(&m_childNodes->m_items[i]); m_childNodes->m_items.RemoveAt(i); break; } } oldChild->set_parentNode(NULL); return oldChild; }
void test1() { test(S(""), S(""), S::npos); test(S(""), S("laenf"), S::npos); test(S(""), S("pqlnkmbdjo"), S::npos); test(S(""), S("qkamfogpnljdcshbreti"), S::npos); test(S("nhmko"), S(""), 4); test(S("lahfb"), S("irkhs"), 4); test(S("gmfhd"), S("kantesmpgj"), 4); test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos); test(S("eolhfgpjqk"), S(""), 9); test(S("nbatdlmekr"), S("bnrpe"), 8); test(S("jdmciepkaq"), S("jtdaefblso"), 9); test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos); test(S("gprdcokbnjhlsfmtieqa"), S(""), 19); test(S("qjghlnftcaismkropdeb"), S("bjaht"), 18); test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 17); test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos); }
void test0() { test(S(""), "", 0, 0); test(S(""), "abcde", 0, S::npos); test(S(""), "abcdeabcde", 0, S::npos); test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos); test(S(""), "", 1, S::npos); test(S(""), "abcde", 1, S::npos); test(S(""), "abcdeabcde", 1, S::npos); test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos); test(S("abcde"), "", 0, 0); test(S("abcde"), "abcde", 0, 0); test(S("abcde"), "abcdeabcde", 0, S::npos); test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos); test(S("abcde"), "", 1, 1); test(S("abcde"), "abcde", 1, S::npos); test(S("abcde"), "abcdeabcde", 1, S::npos); test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos); test(S("abcde"), "", 2, 2); test(S("abcde"), "abcde", 2, S::npos); test(S("abcde"), "abcdeabcde", 2, S::npos); test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos); test(S("abcde"), "", 4, 4); test(S("abcde"), "abcde", 4, S::npos); test(S("abcde"), "abcdeabcde", 4, S::npos); test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos); test(S("abcde"), "", 5, 5); test(S("abcde"), "abcde", 5, S::npos); test(S("abcde"), "abcdeabcde", 5, S::npos); test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos); test(S("abcde"), "", 6, S::npos); test(S("abcde"), "abcde", 6, S::npos); test(S("abcde"), "abcdeabcde", 6, S::npos); test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos); test(S("abcdeabcde"), "", 0, 0); test(S("abcdeabcde"), "abcde", 0, 0); test(S("abcdeabcde"), "abcdeabcde", 0, 0); test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos); test(S("abcdeabcde"), "", 1, 1); test(S("abcdeabcde"), "abcde", 1, 5); test(S("abcdeabcde"), "abcdeabcde", 1, S::npos); test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos); test(S("abcdeabcde"), "", 5, 5); test(S("abcdeabcde"), "abcde", 5, 5); test(S("abcdeabcde"), "abcdeabcde", 5, S::npos); test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos); test(S("abcdeabcde"), "", 9, 9); test(S("abcdeabcde"), "abcde", 9, S::npos); test(S("abcdeabcde"), "abcdeabcde", 9, S::npos); test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos); test(S("abcdeabcde"), "", 10, 10); test(S("abcdeabcde"), "abcde", 10, S::npos); test(S("abcdeabcde"), "abcdeabcde", 10, S::npos); test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos); test(S("abcdeabcde"), "", 11, S::npos); test(S("abcdeabcde"), "abcde", 11, S::npos); test(S("abcdeabcde"), "abcdeabcde", 11, S::npos); test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos); test(S("abcdeabcdeabcdeabcde"), "", 0, 0); test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0); test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0); test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0); test(S("abcdeabcdeabcdeabcde"), "", 1, 1); test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5); test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5); test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos); test(S("abcdeabcdeabcdeabcde"), "", 10, 10); test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10); test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10); test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos); test(S("abcdeabcdeabcdeabcde"), "", 19, 19); test(S("abcdeabcdeabcdeabcde"), "abcde", 19, S::npos); test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, S::npos); test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, S::npos); test(S("abcdeabcdeabcdeabcde"), "", 20, 20); test(S("abcdeabcdeabcdeabcde"), "abcde", 20, S::npos); test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, S::npos); test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, S::npos); test(S("abcdeabcdeabcdeabcde"), "", 21, S::npos); test(S("abcdeabcdeabcdeabcde"), "abcde", 21, S::npos); test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, S::npos); test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, S::npos); }
int Pseudoinverse( size_t m, size_t n, const doublecomplex *A, size_t lda, doublecomplex *P, size_t ldp ){ integer info; CMat Acopy(Eigen::Map<const CMat,Eigen::Unaligned,Eigen::OuterStride<> >(A, m, n, Eigen::OuterStride<>(lda))); Eigen::Map<CMat,Eigen::Unaligned,Eigen::OuterStride<> > mP(P, n, m, Eigen::OuterStride<>(ldp)); if(m >= n){ // tall case RVec S(n); CMat VH(n,n); doublecomplex dum; integer lwork = -1; RVec rwork(5*n); zgesvd_( "O","A", m,n, Acopy.data(), Acopy.outerStride(), S.data(), NULL, m, VH.data(), VH.outerStride(), &dum, lwork, rwork.data(), &info ); lwork = (integer)dum.real(); CVec work(lwork); zgesvd_( "O","A", m,n, Acopy.data(), Acopy.outerStride(), S.data(), NULL, m, VH.data(), VH.outerStride(), work.data(), lwork, rwork.data(), &info ); mP = Acopy.adjoint(); { double threshold = 2 * std::numeric_limits<double>::epsilon() * S[0]; for(size_t i = 0; i < n; ++i){ if(S[i] < threshold){ break; } S[i] = 1./S[i]; } } mP = VH.adjoint() * S.asDiagonal() * mP; }else{ // wide case RVec S(m); CMat U(m,m); doublecomplex dum; integer lwork = -1; RVec rwork(5*m); zgesvd_( "A","O", m,n, Acopy.data(), Acopy.outerStride(), S.data(), U.data(), U.outerStride(), NULL, m, &dum, lwork, rwork.data(), &info ); lwork = (integer)dum.real(); CVec work(lwork); zgesvd_( "A","O", m,n, Acopy.data(), Acopy.outerStride(), S.data(), U.data(), U.outerStride(), NULL, m, work.data(), lwork, rwork.data(), &info ); mP = Acopy.adjoint(); { double threshold = 2 * std::numeric_limits<double>::epsilon() * S[0]; for(size_t i = 0; i < m; ++i){ if(S[i] < threshold){ break; } S[i] = 1./S[i]; } } mP = mP * S.asDiagonal() * U.adjoint(); } return info; }
void main() { int scrwid=320; int scrhei=200; int jump=10; float offrnd=pi/128; float offvdamp=0.999; float frernd=pi/10/scrwid; float frevdamp=0.99; float fredamp=0.9; float amprnd=0.005; float ampvdamp=0.99; float ampdamp=0.99; allegrosetup(scrwid,scrhei); makepalette(&greypalette); makepalette(&myRGB::hue); List<S> xs=List<S>(); List<S> ys=List<S>(); List<S> xvs=List<S>(); List<S> yvs=List<S>(); randomise(); for (int i=0;i<12;i++) { S s=S(myrnd()*scrwid,(1.0+myrnd()*4.0)*pi/(float)scrwid,myrnd()*1.0); S v=S(0,0,0); if (i%2) { xs+s; xvs+v; } else { ys+s; yvs+v; } } JBmp j=JBmp(scrwid,scrhei); do { for (int x=0;x<scrwid;x+=jump) for (int y=0;y<scrhei;y+=jump) { float sum=0; for (int i=1;i<=xs.len;i++) { S s=xs.num(i); sum+=s.amp*sin(s.off+s.fre*x); } for (int i=1;i<=ys.len;i++) { S s=ys.num(i); sum+=s.amp*sin(s.off+s.fre*y); } sum=3.0*sum/(float)(xs.len+ys.len); j.bmp[y][x]=ucharchop(128+128*sum); if (x>0 && y>0) for (int i=0;i<=jump;i++) for (int k=0;k<=jump;k++) j.bmp[y-jump+k][x-jump+i]=(1.0-i/(float)jump)*(1.0-k/(float)jump)*j.bmp[y-jump][x-jump]+(1.0-i/(float)jump)*(k/(float)jump)*j.bmp[y][x-jump]+(i/(float)jump)*(1.0-k/(float)jump)*j.bmp[y-jump][x]+(i/(float)jump)*(k/(float)jump)*j.bmp[y][x]; } j.writetoscreen(); for (int i=1;i<=xs.len;i++) { xvs.p2num(i)->off=xvs.p2num(i)->off*offvdamp+magrnd(offrnd); xvs.p2num(i)->fre=xvs.p2num(i)->fre*frevdamp+magrnd(frernd); xvs.p2num(i)->amp=xvs.p2num(i)->amp*ampvdamp+magrnd(amprnd); xs.p2num(i)->add(xvs.num(i)); xs.p2num(i)->fre=xs.p2num(i)->fre*fredamp; xs.p2num(i)->amp=xs.p2num(i)->amp*ampdamp; } for (int i=1;i<=ys.len;i++) { yvs.p2num(i)->off=yvs.p2num(i)->off*offvdamp+magrnd(offrnd); yvs.p2num(i)->fre=yvs.p2num(i)->fre*frevdamp+magrnd(frernd); yvs.p2num(i)->amp=yvs.p2num(i)->amp*ampvdamp+magrnd(amprnd); ys.p2num(i)->add(yvs.num(i)); ys.p2num(i)->fre=ys.p2num(i)->fre*fredamp; ys.p2num(i)->amp=ys.p2num(i)->amp*ampdamp; } } while (!key[KEY_ESC]); }
void test1() { test(S(""), "", 0); test(S(""), "abcde", S::npos); test(S(""), "abcdeabcde", S::npos); test(S(""), "abcdeabcdeabcdeabcde", S::npos); test(S("abcde"), "", 0); test(S("abcde"), "abcde", 0); test(S("abcde"), "abcdeabcde", S::npos); test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos); test(S("abcdeabcde"), "", 0); test(S("abcdeabcde"), "abcde", 0); test(S("abcdeabcde"), "abcdeabcde", 0); test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos); test(S("abcdeabcdeabcdeabcde"), "", 0); test(S("abcdeabcdeabcdeabcde"), "abcde", 0); test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0); test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0); }
[U_WORD_BREAK_ALETTER] = aletter, \ [U_WORD_BREAK_NUMERIC] = numeric, \ [U_WORD_BREAK_KATAKANA] = katakana, \ [U_WORD_BREAK_EXTENDNUMLET] = extendnumlet, \ [U_WORD_BREAK_REGIONAL_INDICATOR] = regional_indicator, \ [U_WORD_BREAK_MIDLETTER] = midletter, \ [U_WORD_BREAK_MIDNUMLET] = midnumlet, \ [U_WORD_BREAK_MIDNUM] = midnum } #define K(s) (s | (1 << 4)) #define S(s) (s | (2 << 4)) #define D(s) (s | (3 << 4)) static const uint8_t wb_dfa[][U_WORD_BREAK_REGIONAL_INDICATOR + 1] = { ROW(0,1, 2 ,2, 3 , 4 , 5 , 6 , 7 , 0 , 0 , 0 ,K(0),K(0)), // Other ROW(0,1,K(2),2, 3 , 4 , 5 , 6 , 7 , 0 , 0 , 0 , 0 , 0 ), // CR ROW(0,1, 2 ,2, 3 , 4 , 5 , 6 , 7 , 0 , 0 , 0 , 0 , 0 ), // LF | Newline ROW(0,1, 2 ,2,K(3),K(4), 5 ,K(6), 7 ,S(8),S(8), 0 ,K(3),K(3)), // ALetter ROW(0,1, 2 ,2,K(3),K(4), 5 ,K(6), 7 , 0 ,S(9),S(9),K(4),K(4)), // Numeric ROW(0,1, 2 ,2, 3 , 4 ,K(5),K(6), 7 , 0 , 0 , 0 ,K(5),K(5)), // Katakana ROW(0,1, 2 ,2,K(3),K(4),K(5),K(6), 7 , 0 , 0 , 0 ,K(6),K(6)), // ExtendNumLet ROW(0,1, 2 ,2, 3 , 4 , 5 , 6 ,K(7), 0 , 0 , 0 ,K(7),K(7)), // Regional_Indicator ROW(0,1, 2 ,2,D(3), 4 , 5 , 6 , 7 , 0 , 0 , 0 ,K(8),K(8)), // ALetter (MidLetter | MidNumLet) ROW(0,1, 2 ,2, 3 ,D(4), 5 , 6 , 7 , 0 , 0 , 0 ,K(9),K(9)), // Numeric (MidNum | MidNumLet) }; #undef D #undef S #undef K void u_words(const char *string, size_t n, u_substring_fn fn, void *closure) { const char *p = string;
static void *def_sitar_mbhc_cal(void) { void *sitar_cal; struct sitar_mbhc_btn_detect_cfg *btn_cfg; u16 *btn_low, *btn_high; u8 *n_ready, *n_cic, *gain; sitar_cal = kzalloc(SITAR_MBHC_CAL_SIZE(SITAR_MBHC_DEF_BUTTONS, SITAR_MBHC_DEF_RLOADS), GFP_KERNEL); if (!sitar_cal) { pr_err("%s: out of memory\n", __func__); return NULL; } #define S(X, Y) ((SITAR_MBHC_CAL_GENERAL_PTR(sitar_cal)->X) = (Y)) S(t_ldoh, 100); S(t_bg_fast_settle, 100); S(t_shutdown_plug_rem, 255); S(mbhc_nsa, 4); S(mbhc_navg, 4); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_PLUG_DET_PTR(sitar_cal)->X) = (Y)) S(mic_current, SITAR_PID_MIC_5_UA); S(hph_current, SITAR_PID_MIC_5_UA); S(t_mic_pid, 100); S(t_ins_complete, 800);/*MM-SC-HS_Detect_Workaround-00, enlarge delay time from 250 to 800ms*/ S(t_ins_retry, 200); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_PLUG_TYPE_PTR(sitar_cal)->X) = (Y)) S(v_no_mic, 30); S(v_hs_max, 1650); #undef S #define S(X, Y) ((SITAR_MBHC_CAL_BTN_DET_PTR(sitar_cal)->X) = (Y)) S(c[0], 62); S(c[1], 124); S(nc, 1); S(n_meas, 3); S(mbhc_nsc, 11); S(n_btn_meas, 1); S(n_btn_con, 2); S(num_btn, SITAR_MBHC_DEF_BUTTONS); S(v_btn_press_delta_sta, 100); S(v_btn_press_delta_cic, 50); #undef S btn_cfg = SITAR_MBHC_CAL_BTN_DET_PTR(sitar_cal); btn_low = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_V_BTN_LOW); btn_high = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_V_BTN_HIGH); btn_low[0] = -50; btn_high[0] = 100;/*SW-MM-RC-MBHC-02*/ btn_low[1] = 101;/*SW-MM-RC-MBHC-02*/ btn_high[1] = 250;/*SW-MM-RC-MBHC-01*/ btn_low[2] = 251;/*SW-MM-RC-MBHC-01*/ btn_high[2] = 400;/*SW-MM-RC-MBHC-01*/ btn_low[3] = 401;/*SW-MM-RC-MBHC-01*/ btn_high[3] = 700;/*SW-MM-RC-MBHC-01*/ /* MM-AY-NIKDS03283-00-[+ */ #if 0 btn_low[4] = 701;/*SW-MM-RC-MBHC-01*/ btn_high[4] = 800;/*SW-MM-RC-MBHC-01*/ btn_low[5] = 801;/*SW-MM-RC-MBHC-01*/ btn_high[5] = 900;/*SW-MM-RC-MBHC-01*/ btn_low[6] = 901;/*SW-MM-RC-MBHC-01*/ btn_high[6] = 1000;/*SW-MM-RC-MBHC-01*/ btn_low[7] = 1001;/*SW-MM-RC-MBHC-01*/ btn_high[7] = 1100;/*SW-MM-RC-MBHC-01*/ #endif /* MM-AY-NIKDS03283-00-]- */ n_ready = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_N_READY); n_ready[0] = 48; n_ready[1] = 38; n_cic = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_N_CIC); n_cic[0] = 60; n_cic[1] = 47; gain = sitar_mbhc_cal_btn_det_mp(btn_cfg, SITAR_BTN_DET_GAIN); gain[0] = 11; gain[1] = 9; return sitar_cal; }
// CHECK: define void @_Z1fv(%struct.S* noalias sret % S f() { return S(); }
namespace PSQT { #define S(mg, eg) make_score(mg, eg) // Bonus[PieceType][Square / 2] contains Piece-Square scores. For each piece // type on a given square a (middlegame, endgame) score pair is assigned. Table // is defined for files A..D and white side: it is symmetric for black side and // second half of the files. constexpr Score Bonus[][RANK_NB][int(FILE_NB) / 2] = { { }, { // Pawn { S( 0, 0), S( 0, 0), S( 0, 0), S( 0, 0) }, { S(-11,-3), S( 7, -1), S( 7, 7), S(17, 2) }, { S(-16,-2), S( -3, 2), S( 23, 6), S(23,-1) }, { S(-14, 7), S( -7, -4), S( 20,-8), S(24, 2) }, { S( -5,13), S( -2, 10), S( -1,-1), S(12,-8) }, { S(-11,16), S(-12, 6), S( -2, 1), S( 4,16) }, { S( -2, 1), S( 20,-12), S(-10, 6), S(-2,25) } }, { // Knight { S(-161,-105), S(-96,-82), S(-80,-46), S(-73,-14) }, { S( -83, -69), S(-43,-54), S(-21,-17), S(-10, 9) }, { S( -71, -50), S(-22,-39), S( 0, -7), S( 9, 28) }, { S( -25, -41), S( 18,-25), S( 43, 6), S( 47, 38) }, { S( -26, -46), S( 16,-25), S( 38, 3), S( 50, 40) }, { S( -11, -54), S( 37,-38), S( 56, -7), S( 65, 27) }, { S( -63, -65), S(-19,-50), S( 5,-24), S( 14, 13) }, { S(-195,-109), S(-67,-89), S(-42,-50), S(-29,-13) } }, { // Bishop { S(-49,-58), S(- 7,-31), S(-10,-37), S(-34,-19) }, { S(-24,-34), S( 9, -9), S( 15,-14), S( 1, 4) }, { S( -9,-23), S( 22, 0), S( -3, -3), S( 12, 16) }, { S( 4,-26), S( 9, -3), S( 18, -5), S( 40, 16) }, { S( -8,-26), S( 27, -4), S( 13, -7), S( 30, 14) }, { S(-17,-24), S( 14, -2), S( -6, 0), S( 6, 13) }, { S(-19,-34), S(-13,-10), S( 7,-12), S(-11, 6) }, { S(-47,-55), S( -7,-32), S(-17,-36), S(-29,-17) } }, { // Rook { S(-25, 0), S(-16, 0), S(-16, 0), S(-9, 0) }, { S(-21, 0), S( -8, 0), S( -3, 0), S( 0, 0) }, { S(-21, 0), S( -9, 0), S( -4, 0), S( 2, 0) }, { S(-22, 0), S( -6, 0), S( -1, 0), S( 2, 0) }, { S(-22, 0), S( -7, 0), S( 0, 0), S( 1, 0) }, { S(-21, 0), S( -7, 0), S( 0, 0), S( 2, 0) }, { S(-12, 0), S( 4, 0), S( 8, 0), S(12, 0) }, { S(-23, 0), S(-15, 0), S(-11, 0), S(-5, 0) } }, { // Queen { S( 0,-71), S(-4,-56), S(-3,-42), S(-1,-29) }, { S(-4,-56), S( 6,-30), S( 9,-21), S( 8, -5) }, { S(-2,-39), S( 6,-17), S( 9, -8), S( 9, 5) }, { S(-1,-29), S( 8, -5), S(10, 9), S( 7, 19) }, { S(-3,-27), S( 9, -5), S( 8, 10), S( 7, 21) }, { S(-2,-40), S( 6,-16), S( 8,-10), S(10, 3) }, { S(-2,-55), S( 7,-30), S( 7,-21), S( 6, -6) }, { S(-1,-74), S(-4,-55), S(-1,-43), S( 0,-30) } }, { // King { S(272, 0), S(325, 41), S(273, 80), S(190, 93) }, { S(277, 57), S(305, 98), S(241,138), S(183,131) }, { S(198, 86), S(253,138), S(168,165), S(120,173) }, { S(169,103), S(191,152), S(136,168), S(108,169) }, { S(145, 98), S(176,166), S(112,197), S(69, 194) }, { S(122, 87), S(159,164), S(85, 174), S(36, 189) }, { S(87, 40), S(120, 99), S(64, 128), S(25, 141) }, { S(64, 5), S(87, 60), S(49, 75), S(0, 75) } } }; #undef S Score psq[PIECE_NB][SQUARE_NB]; // init() initializes piece-square tables: the white halves of the tables are // copied from Bonus[] adding the piece value, then the black halves of the // tables are initialized by flipping and changing the sign of the white scores. void init() { for (Piece pc = W_PAWN; pc <= W_KING; ++pc) { PieceValue[MG][~pc] = PieceValue[MG][pc]; PieceValue[EG][~pc] = PieceValue[EG][pc]; Score score = make_score(PieceValue[MG][pc], PieceValue[EG][pc]); for (Square s = SQ_A1; s <= SQ_H8; ++s) { File f = std::min(file_of(s), ~file_of(s)); psq[ pc][ s] = score + Bonus[pc][rank_of(s)][f]; psq[~pc][~s] = -psq[pc][s]; } } } } // namespace PSQT
void def6( const S &v = S(100) ) { if( v.a != 100 ) fail(__LINE__); if( v.b != 101 ) fail(__LINE__); if( v.c != 99 ) fail(__LINE__); }
Node* Node::insertNode(Node* _newChild, Node* _pBefore) { ChildNode* newChild = dynamic_cast<ChildNode*>(_newChild); ChildNode* pBefore = dynamic_cast<ChildNode*>(_pBefore); Node* pPrevParent = newChild->get_parentNode(); if (pPrevParent) { pPrevParent->removeChild(newChild); } ChildNode* pAfter; if (pBefore) pAfter = pBefore->get_previousSibling(); else pAfter = m_lastChild; newChild->set_nextSibling(pBefore); newChild->set_previousSibling(pAfter); if (pAfter == NULL) m_firstChild = newChild; else pAfter->set_nextSibling(newChild); if (pBefore == NULL) m_lastChild = newChild; else pBefore->set_previousSibling(newChild); if (pBefore) { for (int i = 0; i < m_childNodes->m_items.GetSize(); i++) { if (m_childNodes->m_items[i] == pBefore) { m_childNodes->m_items.InsertAt(i, newChild); // m_childNodes->m_items.insert(&m_childNodes->m_items[i], newChild); break; } } } else { m_childNodes->m_items.Add(newChild); } // Set new child node's parent to this element newChild->set_parentNode(this); // TRACE("TODO\n"); #if 0 // Update computed xmlspace for inserted child(ren) CComQIPtr<ILDOMElement> newElement((IUnknown*)newChild); if (newElement) { CComBSTR xmlspace; newElement->getAttribute(OLESTR("xml:space"), &xmlspace); if (xmlspace.Length()==0) // inherit from parent { CComQIPtr<CLDOMElementImplImpl>((IUnknown*)newChild)->m_xmlspace = m_xmlspace; } else // explicitly set { CComQIPtr<CLDOMElementImplImpl>((IUnknown*)newChild)->m_xmlspace = cmpbstr(xmlspace, OLESTR("preserve")) == 0; } // TODO, update recursively for newChild } #endif // SMIL Animation (TODO, not very well thought trough) #if 0 { CLDOMDocument* pDocument = static_cast<CLDOMDocument*>(static_cast<CLDOMDocumentImpl<ILDOMDocument>*>(m_ownerDocument)); if (pDocument) { CComQIPtr<ILDOMElement> newElement = newChild; if (newElement) { // SMIL Animation (connect animate/set etc. elements to the elements they target) pDocument->BuildAnimationListForAllElements(newElement, pDocument->m_documentElement); // Set baseVal/animVal from attributes and parse 'style' attributes pDocument->UpdateAnimationElements(newElement); } } } #endif // TRACE("TODO\n"); #if 0 // Timing stuff (TODO) { ElementTimeImplImpl* elementTimeImpl((IUnknown*)newChild); if (elementTimeImpl) { elementTimeImpl->CalculateTimeBeforeParent(); CComPtr<ILElementTimeContainer> parentTimeContainer; elementTimeImpl->get_parentTimeContainer(&parentTimeContainer); CComQIPtr<CLElementTimeContainerImplImpl> parentTimeContainerImpl((IUnknown*)parentTimeContainer); if (parentTimeContainerImpl) { parentTimeContainerImpl->RecalculateTime(); } elementTimeImpl->CalculateTimeAfterParent(); } } CComQIPtr<ILAnimationElement, &IID_ILAnimationElement> animation = (IUnknown*)newChild; if (animation) { CComQIPtr<CLAnimationElementImplImpl> pAnimation((IUnknown*)animation); pAnimation->SetValuesFromAttributes(); } #endif { #if 0 // TODO for (int i = 0; i < m_pNodes.GetSize(); i++) { ASSERT(0); m_pNodes[i]->OnInsertedChild(newChild); } #endif #if 0 if (TRUE) // TODO, probably remove this (use above loop only) { CComQIPtr<INotifySend, &IID_INotifySend> cp = newChild; if (cp) { CComQIPtr<INotifyGet, &IID_INotifyGet> get = (IUnknown*)thisNode; if (get) { DWORD cookie; cp->Advise(get, &cookie); } cp->FireOnChanged(NOTIFY_ADD, newChild, DISPID_UNKNOWN); } } #endif } // CComPtr<ILDOMDocument> ownerDocument; // newChild->get_ownerDocument(&ownerDocument); // if (ownerDocument) { //////////////////////////////// // create an event notification DocumentEvent* ownerDocumentEvent = dynamic_cast<DocumentEvent*>(m_ownerDocument); if (ownerDocumentEvent == NULL) ownerDocumentEvent = dynamic_cast<DocumentEvent*>(this); if (ownerDocumentEvent) { MutationEvent* event = dynamic_cast<MutationEvent*>(ownerDocumentEvent->createEvent(S("MutationEvent"))); EventTarget* eventTarget = dynamic_cast<EventTarget*>(newChild); // event->initMutationEvent(S("DOMNodeInserted"), true, false, this, nullptr, nullptr, nullptr, CHANGE_UNKNOWN); bool doDefault = eventTarget->dispatchEvent(event); if (IsDocumentOrPartOfDocument(this)) { // Send "DOMNodeInsertedIntoDocument" to the node and it's children NodeInsertedIntoDocument(newChild); } } { Node* p = this; while (p) { if (p->m_pNode) { p->m_pNode->m_bArrangeValid = false; } p = p->get_parentNode(); } } #if 0 // event->initMutationEvent(OLESTR("DOMSubtreeModified"), VARIANT_TRUE, VARIANT_FALSE, thisNode, NULL, NULL, NULL, CHANGE_UNKNOWN); eventTarget->dispatchEvent(event, &doDefault); #endif } return newChild; }
/* Don't need to save/restore exponent range: the cache does it. Catalan's constant is G = sum((-1)^k/(2*k+1)^2, k=0..infinity). We compute it using formula (31) of Victor Adamchik's page "33 representations for Catalan's constant" http://www-2.cs.cmu.edu/~adamchik/articles/catalan/catalan.htm G = Pi/8*log(2+sqrt(3)) + 3/8*sum(k!^2/(2k)!/(2k+1)^2,k=0..infinity) */ int mpfr_const_catalan_internal (mpfr_ptr g, mp_rnd_t rnd_mode) { mpfr_t x, y, z; mpz_t T, P, Q; mp_prec_t pg, p; int inex; MPFR_ZIV_DECL (loop); MPFR_GROUP_DECL (group); MPFR_LOG_FUNC (("rnd_mode=%d", rnd_mode), ("g[%#R]=%R inex=%d", g, g, inex)); /* Here are the WC (max prec = 100.000.000) Once we have found a chain of 11, we only look for bigger chain. Found 3 '1' at 0 Found 5 '1' at 9 Found 6 '0' at 34 Found 9 '1' at 176 Found 11 '1' at 705 Found 12 '0' at 913 Found 14 '1' at 12762 Found 15 '1' at 152561 Found 16 '0' at 171725 Found 18 '0' at 525355 Found 20 '0' at 529245 Found 21 '1' at 6390133 Found 22 '0' at 7806417 Found 25 '1' at 11936239 Found 27 '1' at 51752950 */ pg = MPFR_PREC (g); p = pg + 9; p += MPFR_INT_CEIL_LOG2 (p); MPFR_GROUP_INIT_3 (group, p, x, y, z); mpz_init (T); mpz_init (P); mpz_init (Q); MPFR_ZIV_INIT (loop, p); for (;;) { mpfr_sqrt_ui (x, 3, GMP_RNDU); mpfr_add_ui (x, x, 2, GMP_RNDU); mpfr_log (x, x, GMP_RNDU); mpfr_const_pi (y, GMP_RNDU); mpfr_mul (x, x, y, GMP_RNDN); S (T, P, Q, 0, (p - 1) / 2); mpz_mul_ui (T, T, 3); mpfr_set_z (y, T, GMP_RNDU); mpfr_set_z (z, Q, GMP_RNDD); mpfr_div (y, y, z, GMP_RNDN); mpfr_add (x, x, y, GMP_RNDN); mpfr_div_2ui (x, x, 3, GMP_RNDN); if (MPFR_LIKELY (MPFR_CAN_ROUND (x, p - 5, pg, rnd_mode))) break; /* Fixme: Is it possible? */ MPFR_ZIV_NEXT (loop, p); MPFR_GROUP_REPREC_3 (group, p, x, y, z); } MPFR_ZIV_FREE (loop); inex = mpfr_set (g, x, rnd_mode); MPFR_GROUP_CLEAR (group); mpz_clear (T); mpz_clear (P); mpz_clear (Q); return inex; }
// === BNF Grammar ===== // S = NP VP // NP = D N // VP = V NP int main(int argc, char * argv[]) { init("a dog eat a cat "); S(); }
NyqBench::NyqBench(wxWindow * parent) : wxFrame(NULL, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER) { mFindDlg = NULL; mRunning = false; mScriptBox = NULL; mOutputBox = NULL; mScript = NULL; mOutput = NULL; // No need to delete...EffectManager will do it mEffect = new EffectNyquist(wxT("///nyquist worker///")); EffectManager::Get().RegisterEffect(mEffect, HIDDEN_EFFECT); mPath = gPrefs->Read(wxT("NyqBench/Path"), wxEmptyString); mAutoLoad = (gPrefs->Read(wxT("NyqBench/AutoLoad"), 0L) != 0); mAutoWrap = (gPrefs->Read(wxT("NyqBench/AutoWrap"), true) != 0); mLargeIcons = (gPrefs->Read(wxT("NyqBench/LargeIcons"), 0L) != 0); mSplitMode = gPrefs->Read(wxT("NyqBench/SplitMode"), wxSPLIT_VERTICAL); mShowCode = (gPrefs->Read(wxT("NyqBench/ShowScript"), true) != 0); mShowOutput = (gPrefs->Read(wxT("NyqBench/ShowOutput"), true) != 0); SetIcon(wxICON(AudacityLogo)); SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); ShuttleGui S(this, eIsCreating); PopulateOrExchange(S); wxMenuBar *bar = new wxMenuBar(); wxMenu *menu = new wxMenu(); menu->Append(wxID_NEW, wxT("&New\tCtrl+N")); menu->Append(wxID_OPEN, wxT("&Open...\tCtrl+O")); menu->Append(wxID_SAVE, wxT("&Save...\tCtrl+S")); menu->Append(wxID_SAVEAS, wxT("Save &As...\tCtrl+Shift+S")); menu->AppendSeparator(); menu->Append(wxID_REVERT_TO_SAVED, _T("&Revert to Saved")); menu->AppendSeparator(); menu->AppendCheckItem(ID_AUTOLOAD, _T("Auto &Load Last File"))->Check(mAutoLoad); menu->AppendSeparator(); menu->Append(wxID_CLOSE, wxT("&Close Window\tCtrl+W")); bar->Append(menu, wxT("&File")); menu = new wxMenu(); menu->Append(wxID_UNDO, _("&Undo\tCtrl+Z")); menu->Append(wxID_REDO, _("&Redo\tCtrl+Y")); menu->AppendSeparator(); menu->Append(wxID_CUT, _("Cu&t\tCtrl+X")); menu->Append(wxID_COPY, _("&Copy\tCtrl+C")); menu->Append(wxID_PASTE, _("&Paste\tCtrl+V")); menu->Append(wxID_CLEAR, _("Cle&ar\tCtrl+L")); menu->AppendSeparator(); menu->Append(wxID_SELECTALL, _("Select A&ll\tCtrl+A")); menu->AppendSeparator(); menu->Append(wxID_FIND, _("&Find...\tCtrl+F")); menu->AppendSeparator(); wxMenu *sub = new wxMenu(); sub->Append(ID_MATCH, _("&Matching Paren\tF8")); sub->Append(ID_TOP, _("&Top S-expr\tF9")); sub->Append(ID_UP, _("&Higher S-expr\tF10")); sub->Append(ID_PREVIOUS, _("&Previous S-expr\tF11")); sub->Append(ID_NEXT, _("&Next S-expr\tF12")); menu->AppendSubMenu(sub, _("&Go to")); menu->AppendSeparator(); menu->AppendCheckItem(ID_AUTOWRAP, _T("Auto &Wrap"))->Check(mAutoWrap); bar->Append(menu, wxT("&Edit")); menu = new wxMenu(); menu->Append(ID_FONT, _("Select &Font...")); menu->AppendSeparator(); menu->Append(ID_SPLITV, _("Split &Vertically")); menu->Append(ID_SPLITH, _("Split &Horizontally")); menu->AppendSeparator(); menu->AppendCheckItem(ID_TOGGLECODE, _("Show S&cript")); menu->AppendCheckItem(ID_TOGGLEOUTPUT, _("Show &Output")); menu->AppendSeparator(); sub = new wxMenu(); sub->AppendRadioItem(ID_LARGEICONS, _("&Large Icons")); sub->AppendRadioItem(ID_SMALLICONS, _("&Small Icons")); menu->AppendSubMenu(sub, _("Toolbar")); bar->Append(menu, wxT("&View")); menu = new wxMenu(); menu->Append(ID_GO, _("&Go\tF5")); menu->Append(ID_STOP, _("&Stop\tF6")); bar->Append(menu, wxT("&Run")); #if defined(__WXMAC__) menu->Append(wxID_ABOUT, _("&About")); #else menu = new wxMenu(); menu->Append(wxID_ABOUT, _("&About")); bar->Append(menu, wxT("Help")); #endif SetMenuBar(bar); RecreateToolbar(mLargeIcons); wxRect r; r.SetX(gPrefs->Read(wxT("NyqBench/Window/X"), -1)); r.SetY(gPrefs->Read(wxT("NyqBench/Window/Y"), -1)); r.SetWidth(gPrefs->Read(wxT("NyqBench/Window/Width"), -1)); r.SetHeight(gPrefs->Read(wxT("NyqBench/Window/Height"), -1)); if (r == wxRect(-1, -1, -1, -1)) { Center(); } else { SetSize(r); } bool maximized = false; gPrefs->Read(wxT("NyqBench/Window/Maximized"), maximized); if (maximized) { Maximize(); } long sashpos; sashpos = gPrefs->Read(wxT("NyqBench/SplitX"), 0l); if (sashpos > 0) { mSplitter->SetSashPosition(sashpos); } wxString dflt = wxSystemSettings::GetFont(wxSYS_SYSTEM_FONT).GetNativeFontInfoDesc(); wxString desc; wxTextAttr attr; desc = gPrefs->Read(wxT("NyqBench/ScriptFont"), dflt); mScriptFont.SetNativeFontInfo(desc); #if defined(__WXMSW__) // Force SYSTEM encoding to prevent conversion to Unicode in wxTextCtrl::DoWriteText(). // I don't know if this is something I'm doing wrong, but I'll have to look at this // later if I get bored. mScriptFont.SetEncoding(wxFONTENCODING_SYSTEM); #endif attr.SetFont(mScriptFont); mScript->SetDefaultStyle(attr); desc = gPrefs->Read(wxT("NyqBench/OutputFont"), dflt); mOutputFont.SetNativeFontInfo(desc); #if defined(__WXMSW__) // Force SYSTEM encoding to prevent conversion to Unicode in wxTextCtrl::DoWriteText(). // I don't know if this is something I'm doing wrong, but I'll have to look at this // later if I get bored. mOutputFont.SetEncoding(wxFONTENCODING_SYSTEM); #endif attr.SetFont(mOutputFont); mOutput->SetDefaultStyle(attr); if (mAutoLoad && !mPath.GetFullPath().IsEmpty()) { LoadFile(); } SetWindowTitle(); }
void test0() { test(S(""), S(""), 0, S::npos); test(S(""), S("laenf"), 0, S::npos); test(S(""), S("pqlnkmbdjo"), 0, S::npos); test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos); test(S(""), S(""), 1, S::npos); test(S(""), S("bjaht"), 1, S::npos); test(S(""), S("hjlcmgpket"), 1, S::npos); test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos); test(S("fodgq"), S(""), 0, 0); test(S("qanej"), S("dfkap"), 0, 0); test(S("clbao"), S("ihqrfebgad"), 0, 0); test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos); test(S("srdfq"), S(""), 1, 1); test(S("oemth"), S("ikcrq"), 1, 1); test(S("cdaih"), S("dmajblfhsg"), 1, 0); test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos); test(S("cshmd"), S(""), 2, 2); test(S("lhcdo"), S("oebqi"), 2, 2); test(S("qnsoh"), S("kojhpmbsfe"), 2, 1); test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos); test(S("fmtsp"), S(""), 4, 4); test(S("khbpm"), S("aobjd"), 4, 4); test(S("pbsji"), S("pcbahntsje"), 4, 4); test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos); test(S("eqmpa"), S(""), 5, 4); test(S("omigs"), S("kocgb"), 5, 4); test(S("onmje"), S("fbslrjiqkm"), 5, 4); test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos); test(S("schfa"), S(""), 6, 4); test(S("igdsc"), S("qngpd"), 6, 4); test(S("brqgo"), S("rodhqklgmb"), 6, S::npos); test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos); test(S("hcjitbfapl"), S(""), 0, 0); test(S("daiprenocl"), S("ashjd"), 0, S::npos); test(S("litpcfdghe"), S("mgojkldsqh"), 0, S::npos); test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos); test(S("qpghtfbaji"), S(""), 1, 1); test(S("gfshlcmdjr"), S("nadkh"), 1, 1); test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 0); test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos); test(S("crnklpmegd"), S(""), 5, 5); test(S("jsbtafedoc"), S("prqgn"), 5, 5); test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 4); test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos); test(S("lmofqdhpki"), S(""), 9, 9); test(S("hnefkqimca"), S("rtjpa"), 9, 8); test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9); test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos); test(S("elgofjmbrq"), S(""), 10, 9); test(S("mjqdgalkpc"), S("dplqa"), 10, 9); test(S("kthqnfcerm"), S("dkacjoptns"), 10, 9); test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos); test(S("eqsgalomhb"), S(""), 11, 9); test(S("akiteljmoh"), S("lofbc"), 11, 9); test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 8); test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos); test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0); test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0); test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, S::npos); test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos); test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1); test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1); test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 0); test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos); test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10); test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 9); test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 9); test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos); test(S("niptglfbosehkamrdqcj"), S(""), 19, 19); test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19); test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 16); test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos); test(S("eaintpchlqsbdgrkjofm"), S(""), 20, 19); test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 18); test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 19); test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos); test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, 19); test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 19); test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 19); test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos); }
krb5_error_code KRB5_CALLCONV krb5int_accessor(krb5int_access *internals, krb5_int32 version) { if (version == KRB5INT_ACCESS_VERSION) { #if DESIGNATED_INITIALIZERS #define S(FIELD, VAL) .FIELD = VAL #if defined __GNUC__ && __STDC_VERSION__ < 199901L __extension__ #endif static const krb5int_access internals_temp = { #else #define S(FIELD, VAL) internals_temp.FIELD = VAL krb5int_access internals_temp; #endif S (free_addrlist, krb5int_free_addrlist), S (krb5_hmac, krb5_hmac), S (krb5_auth_con_get_subkey_enctype, krb5_auth_con_get_subkey_enctype), S (md5_hash_provider, &krb5int_hash_md5), S (arcfour_enc_provider, &krb5int_enc_arcfour), S (sendto_udp, &krb5int_sendto), S (add_host_to_list, krb5int_add_host_to_list), #ifdef KRB5_DNS_LOOKUP #define SC(FIELD, VAL) S(FIELD, VAL) #else /* disable */ #define SC(FIELD, VAL) S(FIELD, 0) #endif SC (make_srv_query_realm, krb5int_make_srv_query_realm), SC (free_srv_dns_data, krb5int_free_srv_dns_data), SC (use_dns_kdc, _krb5_use_dns_kdc), #undef SC S (clean_hostname, krb5int_clean_hostname), S (krb_life_to_time, 0), S (krb_time_to_life, 0), S (krb524_encode_v4tkt, 0), S (krb5int_c_mandatory_cksumtype, krb5int_c_mandatory_cksumtype), #ifndef LEAN_CLIENT #define SC(FIELD, VAL) S(FIELD, VAL) #else /* disable */ #define SC(FIELD, VAL) S(FIELD, 0) #endif SC (krb5_ser_pack_int64, krb5_ser_pack_int64), SC (krb5_ser_unpack_int64, krb5_ser_unpack_int64), #undef SC #ifdef ENABLE_LDAP #define SC(FIELD, VAL) S(FIELD, VAL) #else #define SC(FIELD, VAL) S(FIELD, 0) #endif SC (asn1_ldap_encode_sequence_of_keys, krb5int_ldap_encode_sequence_of_keys), SC (asn1_ldap_decode_sequence_of_keys, krb5int_ldap_decode_sequence_of_keys), #undef SC #ifndef DISABLE_PKINIT #define SC(FIELD, VAL) S(FIELD, VAL) #else /* disable */ #define SC(FIELD, VAL) S(FIELD, 0) #endif SC (encode_krb5_pa_pk_as_req, encode_krb5_pa_pk_as_req), SC (encode_krb5_pa_pk_as_req_draft9, encode_krb5_pa_pk_as_req_draft9), SC (encode_krb5_pa_pk_as_rep, encode_krb5_pa_pk_as_rep), SC (encode_krb5_pa_pk_as_rep_draft9, encode_krb5_pa_pk_as_rep_draft9), SC (encode_krb5_auth_pack, encode_krb5_auth_pack), SC (encode_krb5_auth_pack_draft9, encode_krb5_auth_pack_draft9), SC (encode_krb5_kdc_dh_key_info, encode_krb5_kdc_dh_key_info), SC (encode_krb5_reply_key_pack, encode_krb5_reply_key_pack), SC (encode_krb5_reply_key_pack_draft9, encode_krb5_reply_key_pack_draft9), SC (encode_krb5_typed_data, encode_krb5_typed_data), SC (encode_krb5_td_trusted_certifiers, encode_krb5_td_trusted_certifiers), SC (encode_krb5_td_dh_parameters, encode_krb5_td_dh_parameters), SC (decode_krb5_pa_pk_as_req, decode_krb5_pa_pk_as_req), SC (decode_krb5_pa_pk_as_req_draft9, decode_krb5_pa_pk_as_req_draft9), SC (decode_krb5_pa_pk_as_rep, decode_krb5_pa_pk_as_rep), SC (decode_krb5_pa_pk_as_rep_draft9, decode_krb5_pa_pk_as_rep_draft9), SC (decode_krb5_auth_pack, decode_krb5_auth_pack), SC (decode_krb5_auth_pack_draft9, decode_krb5_auth_pack_draft9), SC (decode_krb5_kdc_dh_key_info, decode_krb5_kdc_dh_key_info), SC (decode_krb5_principal_name, decode_krb5_principal_name), SC (decode_krb5_reply_key_pack, decode_krb5_reply_key_pack), SC (decode_krb5_reply_key_pack_draft9, decode_krb5_reply_key_pack_draft9), SC (decode_krb5_typed_data, decode_krb5_typed_data), SC (decode_krb5_td_trusted_certifiers, decode_krb5_td_trusted_certifiers), SC (decode_krb5_td_dh_parameters, decode_krb5_td_dh_parameters), SC (decode_krb5_as_req, decode_krb5_as_req), SC (encode_krb5_kdc_req_body, encode_krb5_kdc_req_body), SC (krb5_free_kdc_req, krb5_free_kdc_req), SC (krb5int_set_prompt_types, krb5int_set_prompt_types), SC (encode_krb5_authdata_elt, encode_krb5_authdata_elt), #undef SC S (encode_krb5_sam_response_2, encode_krb5_sam_response_2), S (encode_krb5_enc_sam_response_enc_2, encode_krb5_enc_sam_response_enc_2), S (encode_enc_ts, encode_krb5_pa_enc_ts), S (decode_enc_ts, decode_krb5_pa_enc_ts), S (encode_enc_data, encode_krb5_enc_data), S(decode_enc_data, decode_krb5_enc_data), S(free_enc_ts, krb5_free_pa_enc_ts), S(free_enc_data, krb5_free_enc_data), S(encrypt_helper, krb5_encrypt_helper), #if DESIGNATED_INITIALIZERS }; #else 0; #endif *internals = internals_temp; return 0; }
/* i18n-hint: WCAG2 is the 'Web Content Accessibility Guidelines (WCAG) 2.0', see http://www.w3.org/TR/WCAG20/ */ ContrastDialog::ContrastDialog(wxWindow * parent, wxWindowID id, const wxString & title, const wxPoint & pos): wxDialogWrapper(parent, id, title, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxMAXIMIZE_BOX ) { SetName(GetTitle()); mT0 = 0.0; mT1 = 0.0; foregrounddB = 0.0; backgrounddB = 0.0; mForegroundIsDefined = false; mBackgroundIsDefined = false; // NULL out the control members until the controls are created. mForegroundStartT = NULL; mForegroundEndT = NULL; mBackgroundStartT = NULL; mBackgroundEndT = NULL; wxTextValidator vld(wxFILTER_NUMERIC); wxString number; AudacityProject *p = GetActiveProject(); mProjectRate = p->GetRate(); ShuttleGui S(this, eIsCreating); S.SetBorder(5); S.StartHorizontalLay(wxCENTER, false); { S.AddTitle(_("Contrast Analyzer, for measuring RMS volume differences between two selections of audio.")); } S.EndHorizontalLay(); S.StartStatic( _("Parameters") ); { S.StartMultiColumn(5, wxEXPAND); { // Headings S.AddFixedText(wxT("")); // spacer S.AddFixedText(_("Start")); S.AddFixedText(_("End")); S.AddFixedText(wxT("")); // spacer S.AddFixedText(_("Volume ")); //Foreground S.AddFixedText(_("&Foreground:"), false); if (S.GetMode() == eIsCreating) { mForegroundStartT = safenew NumericTextCtrl(NumericConverter::TIME, this, ID_FOREGROUNDSTART_T, _("hh:mm:ss + hundredths"), 0.0, mProjectRate, wxDefaultPosition, wxDefaultSize, true); mForegroundStartT->SetName(_("Foreground start time")); mForegroundStartT->EnableMenu(false); mForegroundStartT->SetReadOnly(true); } S.AddWindow(mForegroundStartT); if (S.GetMode() == eIsCreating) { mForegroundEndT = safenew NumericTextCtrl(NumericConverter::TIME, this, ID_FOREGROUNDEND_T, _("hh:mm:ss + hundredths"), 0.0, mProjectRate, wxDefaultPosition, wxDefaultSize, true); mForegroundEndT->SetName(_("Foreground end time")); mForegroundEndT->EnableMenu(false); mForegroundEndT->SetReadOnly(true); } S.AddWindow(mForegroundEndT); m_pButton_UseCurrentF = S.Id(ID_BUTTON_USECURRENTF).AddButton(_("&Measure selection")); mForegroundRMSText=S.Id(ID_FOREGROUNDDB_TEXT).AddTextBox(wxT(""), wxT(""), 17); mForegroundRMSText->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(ContrastDialog::OnChar)); //Background S.AddFixedText(_("&Background:")); if (S.GetMode() == eIsCreating) { mBackgroundStartT = safenew NumericTextCtrl(NumericConverter::TIME, this, ID_BACKGROUNDSTART_T, _("hh:mm:ss + hundredths"), 0.0, mProjectRate, wxDefaultPosition, wxDefaultSize, true); mBackgroundStartT->SetName(_("Background start time")); mBackgroundStartT->EnableMenu(false); mBackgroundStartT->SetReadOnly(true); } S.AddWindow(mBackgroundStartT); if (S.GetMode() == eIsCreating) { mBackgroundEndT = safenew NumericTextCtrl(NumericConverter::TIME, this, ID_BACKGROUNDEND_T, _("hh:mm:ss + hundredths"), 0.0, mProjectRate, wxDefaultPosition, wxDefaultSize, true); mBackgroundEndT->SetName(_("Background end time")); mBackgroundEndT->EnableMenu(false); mBackgroundEndT->SetReadOnly(true); } S.AddWindow(mBackgroundEndT); m_pButton_UseCurrentB = S.Id(ID_BUTTON_USECURRENTB).AddButton(_("Mea&sure selection")); mBackgroundRMSText = S.Id(ID_BACKGROUNDDB_TEXT).AddTextBox(wxT(""), wxT(""), 17); mBackgroundRMSText->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(ContrastDialog::OnChar)); } S.EndMultiColumn(); } S.EndStatic(); //Result S.StartStatic( _("Result") ); { S.StartMultiColumn(3, wxCENTER); { S.AddFixedText(_("Co&ntrast Result:")); mPassFailText = S.Id(ID_RESULTS_TEXT).AddTextBox(wxT(""), wxT(""), 50); mPassFailText->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(ContrastDialog::OnChar)); m_pButton_Reset = S.Id(ID_BUTTON_RESET).AddButton(_("R&eset")); S.AddFixedText(_("&Difference:")); mDiffText = S.Id(ID_RESULTSDB_TEXT).AddTextBox(wxT(""), wxT(""), 50); mDiffText->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(ContrastDialog::OnChar)); m_pButton_Export = S.Id(ID_BUTTON_EXPORT).AddButton(_("E&xport...")); } S.EndMultiColumn(); } S.EndStatic(); S.StartMultiColumn(3, wxEXPAND); { S.SetStretchyCol(1); m_pButton_GetURL = S.Id(ID_BUTTON_GETURL).AddButton(_("&Help")); S.AddFixedText(wxT(" ")); // spacer m_pButton_Close = S.Id(ID_BUTTON_CLOSE).AddButton(_("&Close")); } S.EndMultiColumn(); Layout(); Fit(); SetMinSize(GetSize()); Center(); }
/* pull a byte from the input buffer */ static inline unsigned int pull(MMIOT *f) { return ( f->isp < S(f->in) ) ? (unsigned char)T(f->in)[f->isp++] : EOF; }
int jacobi(MAT &A,VEC b,VEC &x, int maxIter, double tol){ int n = A.dim(); VEC S(n); //summation vector VEC G(n); //diagonal of A VEC tmp(n); //save the x before iterative method MAT L(n); VEC cpr(n); //the result of hw4 //iterative int k=0; double err1; double err2; double errinf; double diff1,diff2,diffinf; while(k<maxIter){ for(int i=0;i<n;i++){ S[i] = 0; //initialize the sum vector to 0 } for(int i=0;i<n;i++){ G[i] = A[i][i]; //save the previous vector x to tmp(for comparison between iteration k and k+1) tmp[i] = x[i]; for(int j=0;j<n;j++){ if(j!=i){ S[i] = S[i] + A[i][j]*x[j]; //sum the Aij*xj, where i is not equal to j } } } for(int i=0;i<n;i++){ x[i] = (1/G[i])*(b[i]-S[i]); //compute the new solution of x at iteration k } k++; //after each iteration, k=k+1 err1 = 0; //1-norm err2 = 0; //2-norm errinf = 0; //infinity-norm for(int i=0;i<n;i++){ err1 += fabs(x[i] - tmp[i]); //sum of absolute error err2 += pow(x[i] - tmp[i], 2); //sum of square error errinf = max(errinf,fabs(x[i]-tmp[i])); //take the maximum absolute difference as error } //max(a,b) defined on the top err2 = pow(err2,0.5); //find the square root of err2 and get the 2-norm //you can change err1 to err2 or errinf to get different number of iterations k based on which p-norm you preferred if(err1<tol){ break; } } diff1 = 0; diff2 = 0; diffinf = 0; //the answer from hw4 L = cholesky(A); //in-place Cholesky Decomposition cpr = choSolve(L,b); //solve the linear system by forward and backward substitution //use the same method to compute the error between hw4 and hw5, see if < 10^-7. if not, decrease the tol for(int i=0;i<n;i++){ diff1 += fabs(x[i] - cpr[i]); diff2 += pow(x[i] - cpr[i], 2); diffinf = max(diffinf,fabs(x[i]-cpr[i])); } diff2 = pow(diff2,0.5); printf("error between hw4 and hw5(1-norm 2-norm infinity-norm): %e %e %e\n",diff1,diff2,diffinf); return k; }
int main( ){ USING_NAMESPACE_ACADO // INTRODUCE THE VARIABLES: // ------------------------- const int N = 2; DifferentialState x, y("", N, 1); Control u; DifferentialEquation f; const double t_start = 0.0; const double t_end = 10.0; // DEFINE A DIFFERENTIAL EQUATION: // ------------------------------- f << dot(x) == -x + 0.9*x*x + u; int i; for( i = 0; i < N; i++ ) f << dot( y(i) ) == -y(i) + 0.5*y(i)*y(i) + u; // DEFINE LEAST SQUARE FUNCTION: // ----------------------------- Function h,m; h << x; h << 2.0*u; m << 10.0*x ; m << 0.1*x*x; DMatrix S(2,2); DVector r(2); S.setIdentity(); r.setAll( 0.1 ); // DEFINE AN OPTIMAL CONTROL PROBLEM: // ---------------------------------- OCP ocp( t_start, t_end, 5 ); ocp.minimizeLSQ ( S, h, r ); ocp.minimizeLSQEndTerm( S, m, r ); ocp.subjectTo( f ); ocp.subjectTo( AT_START, x == 1.0 ); for( i = 0; i < N; i++ ) ocp.subjectTo( AT_START, y(i) == 1.0 ); // Additionally, flush a plotting object GnuplotWindow window; window.addSubplot( x,"DifferentialState x" ); window.addSubplot( u,"Control u" ); // DEFINE AN OPTIMIZATION ALGORITHM AND SOLVE THE OCP: // --------------------------------------------------- OptimizationAlgorithm algorithm(ocp); algorithm << window; // algorithm.set( PRINT_SCP_METHOD_PROFILE, YES ); // algorithm.set( DYNAMIC_SENSITIVITY, FORWARD_SENSITIVITY_LIFTED ); // algorithm.set( HESSIAN_APPROXIMATION, CONSTANT_HESSIAN ); // algorithm.set( HESSIAN_APPROXIMATION, FULL_BFGS_UPDATE ); // algorithm.set( HESSIAN_APPROXIMATION, BLOCK_BFGS_UPDATE ); algorithm.set( HESSIAN_APPROXIMATION, GAUSS_NEWTON ); // algorithm.set( HESSIAN_APPROXIMATION, GAUSS_NEWTON_WITH_BLOCK_BFGS ); // algorithm.set( HESSIAN_APPROXIMATION, EXACT_HESSIAN ); // Necessary to use with GN Hessian approximation. algorithm.set( LEVENBERG_MARQUARDT, 1e-10 ); algorithm.solve(); return 0; }
int sgs(MAT &A,VEC b,VEC &x,int maxIter,double tol) { int n = A.dim(); VEC S(n); VEC G(n); VEC tmp(n); MAT L(n); VEC cpr(n); //iterative int k=0; double err1; double err2; double errinf; double diff1,diff2,diffinf; while(k<maxIter){ for(int i=0;i<n;i++){ S[i] = 0; } //forward gauss-seidel //compute vector x from x[0] to x[n-1] for(int i=0;i<n;i++){ G[i] = A[i][i]; tmp[i] = x[i]; for(int j=0;j<n;j++){ if(j!=i){ S[i] = S[i] + A[i][j]*x[j]; } } x[i] = (1/G[i])*(b[i]-S[i]); } //backward gauss-seidel //use the reslults of forward gauss-seidel to compute vector x //direction : from x[n-1] to x[0] for(int i=0;i<n;i++){ S[i] = 0; //we also need to initialize the sum vector. } for(int i=n-1;i>=0;i--){ for(int j=n-1;j>=0;j--){ if(j!=i){ S[i] = S[i] + A[i][j]*x[j]; } } x[i] = (1/G[i])*(b[i]-S[i]); } k++; err1 = 0; err2 = 0; errinf = 0; for(int i=0;i<n;i++){ err1 += fabs(x[i] - tmp[i]); err2 += pow(x[i] - tmp[i], 2); errinf = max(errinf,fabs(x[i]-tmp[i])); } err2 = pow(err2,0.5); if(err1<tol){ break; } } diff1 = 0; diff2 = 0; diffinf = 0; //the answer from hw4 L = cholesky(A); //in-place Cholesky Decomposition cpr = choSolve(L,b); //solve the linear system by forward and backward substitution //use the same method to compute the error between hw4 and hw5, see if < 10^-7. if not, decrease the tol for(int i=0;i<n;i++){ diff1 += fabs(x[i] - cpr[i]); diff2 += pow(x[i] - cpr[i], 2); diffinf = max(diffinf,fabs(x[i]-cpr[i])); } diff2 = pow(diff2,0.5); printf("error between hw4 and hw5(1-norm 2-norm infinity-norm): %e %e %e\n",diff1,diff2,diffinf); return k; }
S f () { return S (); // { dg-error "reference|deleted" } }
static void *def_msm8x10_wcd_mbhc_cal(void) { void *msm8x10_wcd_cal; struct wcd9xxx_mbhc_btn_detect_cfg *btn_cfg; u16 *btn_low, *btn_high; u8 *n_ready, *n_cic, *gain; msm8x10_wcd_cal = kzalloc(WCD9XXX_MBHC_CAL_SIZE( WCD9XXX_MBHC_DEF_BUTTONS, WCD9XXX_MBHC_DEF_RLOADS), GFP_KERNEL); if (!msm8x10_wcd_cal) { pr_err("%s: out of memory\n", __func__); return NULL; } #define S(X, Y) ((WCD9XXX_MBHC_CAL_GENERAL_PTR(msm8x10_wcd_cal)->X) = (Y)) S(t_ldoh, 100); S(t_bg_fast_settle, 100); S(t_shutdown_plug_rem, 255); S(mbhc_nsa, 2); S(mbhc_navg, 128); #undef S #define S(X, Y) ((WCD9XXX_MBHC_CAL_PLUG_DET_PTR(msm8x10_wcd_cal)->X) = (Y)) S(mic_current, MSM8X10_WCD_PID_MIC_5_UA); S(hph_current, MSM8X10_WCD_PID_MIC_5_UA); S(t_mic_pid, 100); S(t_ins_complete, 250); S(t_ins_retry, 200); #undef S #define S(X, Y) ((WCD9XXX_MBHC_CAL_PLUG_TYPE_PTR(msm8x10_wcd_cal)->X) = (Y)) S(v_no_mic, 30); S(v_hs_max, 2550); #undef S #define S(X, Y) ((WCD9XXX_MBHC_CAL_BTN_DET_PTR(msm8x10_wcd_cal)->X) = (Y)) S(c[0], 62); S(c[1], 124); S(nc, 1); S(n_meas, 5); S(mbhc_nsc, 10); S(n_btn_meas, 1); S(n_btn_con, 2); S(num_btn, WCD9XXX_MBHC_DEF_BUTTONS); S(v_btn_press_delta_sta, 100); S(v_btn_press_delta_cic, 50); #undef S btn_cfg = WCD9XXX_MBHC_CAL_BTN_DET_PTR(msm8x10_wcd_cal); btn_low = wcd9xxx_mbhc_cal_btn_det_mp(btn_cfg, MBHC_BTN_DET_V_BTN_LOW); btn_high = wcd9xxx_mbhc_cal_btn_det_mp(btn_cfg, MBHC_BTN_DET_V_BTN_HIGH); btn_low[0] = -50; btn_high[0] = 77; btn_low[1] = 78; btn_high[1] = 450; btn_low[2] = 451; btn_high[2] = 650; n_ready = wcd9xxx_mbhc_cal_btn_det_mp(btn_cfg, MBHC_BTN_DET_N_READY); n_ready[0] = 80; n_ready[1] = 68; n_cic = wcd9xxx_mbhc_cal_btn_det_mp(btn_cfg, MBHC_BTN_DET_N_CIC); n_cic[0] = 60; n_cic[1] = 47; gain = wcd9xxx_mbhc_cal_btn_det_mp(btn_cfg, MBHC_BTN_DET_GAIN); gain[0] = 11; gain[1] = 14; return msm8x10_wcd_cal; }
void FB_RS::executeEvent(AppBlocInfo pa_stAppBlocInfo, EVENT_UID pa_unEIID) { if (m_unEventREQID == pa_unEIID) { Q1() = !R1() && (S() || Q1()); SendOutput(m_unEventCNFID); } }