Ejemplo n.º 1
0
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;
    }
Ejemplo n.º 2
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;	
}
Ejemplo n.º 3
0
static void S::poo()
{
    throw S();
}
Ejemplo n.º 4
0
    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),
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
0
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);
}
Ejemplo n.º 8
0
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);
}
Ejemplo n.º 9
0
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;
}
Ejemplo n.º 10
0
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]);
}
Ejemplo n.º 11
0
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);
}
Ejemplo n.º 12
0
Archivo: u_words.c Proyecto: now/u
          [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;
Ejemplo n.º 13
0
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(); }
Ejemplo n.º 15
0
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
Ejemplo n.º 16
0
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__);
}
Ejemplo n.º 17
0
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;
}
Ejemplo n.º 18
0
/* 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;
}
Ejemplo n.º 19
0
// === BNF Grammar =====
// S = NP VP
// NP = D N
// VP = V NP
int main(int argc, char * argv[]) {
	init("a dog eat a cat ");
	S();
}
Ejemplo n.º 20
0
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);
}
Ejemplo n.º 22
0
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;
    }
Ejemplo n.º 23
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();
}
Ejemplo n.º 24
0
/* 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;
}
Ejemplo n.º 25
0
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;
}
Ejemplo n.º 26
0
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;
}
Ejemplo n.º 27
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;
}
Ejemplo n.º 28
0
Archivo: ctor8.C Proyecto: Nodplus/gcc
S f () {
  return S (); // { dg-error "reference|deleted" }
}
Ejemplo n.º 29
0
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);
	}
}