/* render a Bezier curve. */ void render_curveto( render_t* rm, double x2, double y2, double x3, double y3, double x4, double y4 ) { double x1, y1, dd0, dd1, dd, delta, e2, epsilon, t; x1 = rm->x1; /* starting point */ y1 = rm->y1; /* we approximate the curve by small line segments. The interval * size, epsilon, is determined on the fly so that the distance * between the true curve and its approximation does not exceed the * desired accuracy delta. */ delta = .1; /* desired accuracy, in pixels */ /* let dd = maximal value of 2nd derivative over curve - this must * occur at an endpoint. */ dd0 = sq( x1 - 2 * x2 + x3 ) + sq( y1 - 2 * y2 + y3 ); dd1 = sq( x2 - 2 * x3 + x4 ) + sq( y2 - 2 * y3 + y4 ); dd = 6 * sqrt( max( dd0, dd1 ) ); e2 = 8 * delta <= dd ? 8 * delta / dd : 1; epsilon = sqrt( e2 ); /* necessary interval size */ for( t = epsilon; t<1; t += epsilon ) { render_lineto( rm, x1 * cu( 1 - t ) + 3 * x2 * sq( 1 - t ) * t + 3 * x3 * (1 - t) * sq( t ) + x4 * cu( t ), y1 * cu( 1 - t ) + 3 * y2 * sq( 1 - t ) * t + 3 * y3 * (1 - t) * sq( t ) + y4 * cu( t ) ); } render_lineto( rm, x4, y4 ); }
void TestSymBandDiv_D2(tmv::DivType dt, PosDefCode pdc) { const int N = 10; std::vector<tmv::SymBandMatrixView<T> > sb; std::vector<tmv::SymBandMatrixView<std::complex<T> > > csb; MakeSymBandList(sb,csb,pdc); tmv::Matrix<T> a1(N,N); for (int i=0; i<N; ++i) for (int j=0; j<N; ++j) a1(i,j) = T(1-3*i+j); a1.diag().addToAll(T(10)*N); a1 /= T(10); tmv::Matrix<std::complex<T> > ca1 = a1 * std::complex<T>(3,-4); tmv::UpperTriMatrix<T> u(a1); tmv::UpperTriMatrix<std::complex<T> > cu(ca1); tmv::LowerTriMatrix<T> l(a1); tmv::LowerTriMatrix<std::complex<T> > cl(ca1); tmv::UpperTriMatrixView<T> uv = u.view(); tmv::UpperTriMatrixView<std::complex<T> > cuv = cu.view(); tmv::LowerTriMatrixView<T> lv = l.view(); tmv::LowerTriMatrixView<std::complex<T> > clv = cl.view(); for(size_t i=START;i<sb.size();i++) { if (showstartdone) std::cout<<"Start loop: i = "<<i<<", si = "<<tmv::TMV_Text(sb[i])<< " "<<sb[i]<<std::endl; tmv::SymBandMatrixView<T> si = sb[i]; tmv::SymBandMatrixView<std::complex<T> > csi = csb[i]; TestMatrixDivArith1(dt,uv,si,cuv,csi,"SymBand/UpperTriMatrix"); TestMatrixDivArith1(dt,lv,si,clv,csi,"SymBand/LowerTriMatrix"); } }
void Thread::cleanup_push(void (*routine) (void *), void *parm) { AutoPtr < cleanup_handler > cu(new cleanup_handler(routine, parm)); _cleanup.insert_front(cu.get()); cu.release(); return; }
/** @deprecated : use createGPUmodulefromfile */ CUmodule * CudaCompiler::compileFromFile(const String fileName, GPU * gpu) { if(fileName == NULL) { return 0; } QFileInfo cu( fileName ); if (! cu.isReadable()) { return 0; } else { /* Get filename */ int result; String res; compileCUtoPTX( &fileName, result, &res ); if(result != NVCC_OK ) { qDebug() << "Error during compilation from file " << fileName << " [" << result <<"]"; return 0; } else { qDebug()<< " cu -> ptx ok"; } String ptxfile = cu.baseName() + ".ptx"; QFile file(ptxfile); QFileInfo ptx(ptxfile); if (ptx.isReadable()) { ByteArray * bar = ptxDump(&file); return compilePTX((uchar*) bar->data(), gpu); delete bar; } } return NULL; }
cursor text_box_rep::find_cursor (path bp) { metric ex; cursor cu (0, 0); int l= min (bp->item, N(str)); fn->get_extents (str (0, l), ex); cu->ox= ex->x2; if (!is_nil (xk) && N(str) != 0) { STACK_NEW_ARRAY (xpos, SI, N(str)+1); fn->get_xpositions (str, xpos, xk->padding); SI d= xk->padding - xk->left; cu->ox= xpos[l] - d; if (l == 0) cu->ox += d; if (l == N(str)) cu->ox += xk->right; STACK_DELETE_ARRAY (xpos); } if (l != 0) { int k= l; tm_char_backwards (str, k); fn->get_extents (str (k, l), ex); } cu->y1= min (ex->y1, 0); cu->y2= max (ex->y2, fn->yx); cu->slope= fn->get_right_slope (str); return cu; }
bool Handle<CLType, CUType>::operator==(Handle const & other) const { if(backend_==CUDA && other.backend_==CUDA) return cu()==other.cu(); if(backend_==OPENCL && other.backend_==OPENCL) return cl()==other.cl(); return false; }
cursor box_rep::find_cursor (path bp) { bool flag= bp == path (0); double slope= flag? left_slope (): right_slope (); cursor cu (flag? x1: x2, 0); cu->y1= y1; cu->y2= y2; cu->slope= slope; return cu; }
int main() { bh(); void *av = i(); cp->b = av; bb(cm); cn = cu(cm); if (cn) { printf("mpz_lucnum_ui0 wrong\n"); abort(); } exit(0); }
NT2_TEST_CASE_TPL ( unifks, NT2_REAL_TYPES) { T a = -1; T b = 1; nt2::table<T> v = nt2::sort(normrnd(a, b, nt2::of_size(1, 1000)), 2); unif_cdf<T> cu(a, b); T d, p; nt2:: kstest(v, cu, d, p); // Kolmogorov smirnov at 5% must fail NT2_TEST_LESSER_EQUAL(p, 0.05); }
void TestSymDiv_D1(tmv::DivType dt, PosDefCode pdc) { const int N = 10; std::vector<tmv::SymMatrixView<T> > s; std::vector<tmv::SymMatrixView<std::complex<T> > > cs; MakeSymList(s,cs,pdc); tmv::Matrix<T> a1(N,N); for (int i=0; i<N; ++i) for (int j=0; j<N; ++j) a1(i,j) = T(1-3*i+j); a1.diag().addToAll(T(10)*N); a1 /= T(10); tmv::Matrix<std::complex<T> > ca1 = a1 * std::complex<T>(3,-4); tmv::UpperTriMatrix<T> u(a1); tmv::UpperTriMatrix<std::complex<T> > cu(ca1); tmv::LowerTriMatrix<T> l(a1); tmv::LowerTriMatrix<std::complex<T> > cl(ca1); tmv::UpperTriMatrixView<T> uv = u.view(); tmv::UpperTriMatrixView<std::complex<T> > cuv = cu.view(); tmv::LowerTriMatrixView<T> lv = l.view(); tmv::LowerTriMatrixView<std::complex<T> > clv = cl.view(); for(size_t i=START;i<s.size();i++) { if (showstartdone) std::cout<<"Start loop: i = "<<i<<", si = "<<tmv::TMV_Text(s[i])<< " "<<s[i]<<std::endl; tmv::SymMatrixView<T> si = s[i]; tmv::SymMatrixView<std::complex<T> > csi = cs[i]; if (dt == tmv::CH && csi.issym()) continue; si.saveDiv(); csi.saveDiv(); TestMatrixDivArith1(dt,si,uv,csi,cuv,"UpperTriMatrix/Sym"); TestMatrixDivArith1(dt,si,lv,csi,clv,"LowerTriMatrix/Sym"); } }
void TestBandDiv_D1(tmv::DivType dt) { const int N = 10; std::vector<tmv::BandMatrixView<T> > b; std::vector<tmv::BandMatrixView<std::complex<T> > > cb; MakeBandList(b,cb); tmv::Matrix<T> a1(N,N); for (int i=0; i<N; ++i) for (int j=0; j<N; ++j) a1(i,j) = T(1-3*i+j); a1.diag().addToAll(T(10)*N); a1 /= T(10); tmv::Matrix<std::complex<T> > ca1 = a1 * std::complex<T>(3,-4); tmv::UpperTriMatrix<T> u(a1); tmv::UpperTriMatrix<std::complex<T> > cu(ca1); tmv::LowerTriMatrix<T> l(a1); tmv::LowerTriMatrix<std::complex<T> > cl(ca1); tmv::UpperTriMatrixView<T> uv = u.view(); tmv::UpperTriMatrixView<std::complex<T> > cuv = cu.view(); tmv::LowerTriMatrixView<T> lv = l.view(); tmv::LowerTriMatrixView<std::complex<T> > clv = cl.view(); for(size_t i=START;i<b.size();i++) { if (showstartdone) std::cout<<"Start D1 loop: i = "<<i<<"\nbi = "<<tmv::TMV_Text(b[i])<< " "<<b[i]<<std::endl; tmv::BandMatrixView<T> bi = b[i]; tmv::BandMatrixView<std::complex<T> > cbi = cb[i]; if (dt == tmv::LU && !bi.isSquare()) continue; bi.saveDiv(); cbi.saveDiv(); TestMatrixDivArith1(dt,bi,uv,cbi,cuv,"UpperTriMatrix/Band"); TestMatrixDivArith1(dt,bi,lv,cbi,clv,"LowerTriMatrix/Band"); } }
void TestBandDiv_D2(tmv::DivType dt) { const int N = 10; std::vector<tmv::BandMatrixView<T> > b; std::vector<tmv::BandMatrixView<std::complex<T> > > cb; MakeBandList(b,cb); tmv::Matrix<T> a1(N,N); for (int i=0; i<N; ++i) for (int j=0; j<N; ++j) a1(i,j) = T(1-3*i+j); a1 /= T(10); a1.diag().addToAll(T(10)*N); tmv::Matrix<std::complex<T> > ca1 = a1 * std::complex<T>(3,-4); tmv::UpperTriMatrix<T> u(a1); tmv::UpperTriMatrix<std::complex<T> > cu(ca1); tmv::LowerTriMatrix<T> l(a1); tmv::LowerTriMatrix<std::complex<T> > cl(ca1); tmv::UpperTriMatrixView<T> uv = u.view(); tmv::UpperTriMatrixView<std::complex<T> > cuv = cu.view(); tmv::LowerTriMatrixView<T> lv = l.view(); tmv::LowerTriMatrixView<std::complex<T> > clv = cl.view(); for(size_t i=START;i<b.size();i++) { if (showstartdone) { std::cout<<"Start D2 loop: i = "<<i<<"\n"; std::cout<<"bi = "<<tmv::TMV_Text(b[i])<<" "<<b[i]<<std::endl; std::cout<<"u = "<<tmv::TMV_Text(u)<<" "<<u<<std::endl; std::cout<<"l = "<<tmv::TMV_Text(l)<<" "<<l<<std::endl; } tmv::BandMatrixView<T> bi = b[i]; tmv::BandMatrixView<std::complex<T> > cbi = cb[i]; TestMatrixDivArith1(dt,uv,bi,cuv,cbi,"Band/UpperTriMatrix"); TestMatrixDivArith1(dt,lv,bi,clv,cbi,"Band/LowerTriMatrix"); } }
int main(int argc, char const *argv[]) { // make a thing Thing th1; // make a continuous updater to continuosly update the thing zwlib::ContinuousUpdater<int> cu(&th1); // start the continuous updater cu.start(); // look Ma! no blocking! std::this_thread::sleep_for(std::chrono::seconds(3)); std::cout << "it's " << cu.get() << std::endl; std::this_thread::sleep_for(std::chrono::seconds(3)); // stop the continuous updater cu.stop(); // show the final value of the continuous updater std::cout << "now it's " << cu.get() << std::endl; return 0; }
int main() { signal (SIGALRM, signalhandler); signal (SIGUSR1, reset); nval.it_interval.tv_sec = 1; nval.it_interval.tv_usec = 0; nval.it_value.tv_sec = 1; nval.it_value.tv_usec = 0; sc_regInit(); termInit(); ax = 0x0; ip = 0x0; enum Keys key = K_UNKNOWN; displayBorders(); displayUI(); f_key = 0; f_ign = 0; while (key != K_Q) { readKey (&key); if (key == K_T) { sc_regSet(IR, 0); alarm(0); f_key = 0; cu(); } if (!f_key) { if (key == K_R ) { sc_regSet(IR, 1); sc_regSet(IF, 0); } sc_regGet(IR, &f_key); if (f_key) { timerStart(); } if (key == K_F5 ) user_input_ax(); if (key == K_F6 ) user_input_ip(); if (key == K_RIGHT) if (mem_ptr < 99) ++mem_ptr; if (key == K_LEFT ) if (mem_ptr > 0) --mem_ptr; if (key == K_UP ) if (mem_ptr - 10 >= 0) mem_ptr -= 10; if (key == K_DOWN ) if (mem_ptr + 10 < 100) mem_ptr += 10; if (key == K_L ) sc_memoryLoad("memory.o"); if (key == K_S ) sc_memorySave("memory.o"); if (key == K_E ) user_input_mem(); if (key == K_I) { displayBorders(); displayUI(); sc_memoryInit(); sc_regInit(); } displayUI (); } } return 0; }
void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(r*cos(c*du), h, r*sin(c*du), 0, 0, 0, 0, 3, 0); //head position;eye direction(0.0,0.0,0.0),original point;(0.0,1.0,0.0),head above direction¡£ //cylinder a(1, 15, 0, 90, 0, 0, 5, 0); //r,h,xangle yangle zangle, module position(xx yy zz) //sphere b(3, 100, 100, 0, 0, 0, 0, 2.5, 0); //r,xangle yangle zangle, module position(xx yy zz) //cube c(5, 10, 0, 0, 1, 1, 1); //length xangle yangle zangle, module position(xx yy zz) //rectangularpyramid d(4, 0, 0, 0, 0, 2, 0); //length xangle yangle zangle, module position(xx yy zz) //triangularpyramid f(2, 0, 0, 0, 8, 8, 8);//length xangle yangle zangle, module position(xx yy zz) //f.draw(); sphere sp(3, 100, 100, 0, 0, -2, 0, 8, 0); cylinder cy(3, 5, 0, 90, 0, -3, 9, -10); cube cu(3, 0, 0, 0, 0, 8, 10); triangularpyramid tr(2, 0, 0, 0, 0, -6, 8); rectangularpyramid rec(2, 0, 0, 0, 0, -6, -8); cylinder k1(0.3, 2, 90, 0, 0, 0, 0, 0); cylinder k2(0.3, 2, -90, 0, 0, 0, 0, 0); cylinder k3(0.3, 2, -45, 0, 0, 0, 0, 0); cylinder k4(0.3, 2.5, 45, 0, 0, 0, 0, 0); cylinder u1(0.3, 2, 90, 0, 0, 0, 0, 3); cylinder u2(0.3, 1.5, -90, 0, 0, 0, 0, 3); cylinder u3(0.3, 2, 0, 0, 0, 0, -1.8, 3); cylinder u4(0.3, 2, 90, 0, 0, 0, 0, 5); cylinder u5(0.3, 1.5, -90, 0, 0, 0, 0, 5); cylinder g1(0.3, 2, -90, 0, 0, 0, -0.5, 6.4); cylinder g2(0.3, 1.5, -90, 0, 0, 0, -0.5, 6.4); cylinder g3(0.3, 2, 0, 0, 0, 0, -0.3, 6.4); cylinder g4(0.3, 2, 0, 0, 0, 0, 1.3, 6.4); cylinder g5(0.3, 2, 90, 0, 0, 0, 0, 8.4); cylinder g6(0.3, 1.5, -90, 0, 0, 0, 0, 8.4); cylinder g7(0.3, 2, 0, 0, 0, 0, -1.8, 6.4); cylinder e1(0.3, 1.8, -90, 0, 0, 0, -0.2, 10); cylinder e2(0.3, 1.8, 90, 0, 0, 0, -0.2, 10); cylinder e3(0.3, 2, 0, 0, 0, 0, -0.3, 10); cylinder e4(0.3, 2, 0, 0, 0, 0, 1.3, 10); cylinder e5(0.3, 2, 0, 0, 0, 0, -1.8, 10); cylinder r1(0.3, 1.8, -90, 0, 0, 0, -0.2, 13.5); cylinder r2(0.3, 1.8, 90, 0, 0, 0, -0.2, 13.5); cylinder r3(0.3, 2, 0, 0, 0, 0, -0.3, 13.5); cylinder r4(0.3, 1.2, 0, 0, 0, 0, 1.3, 13.5); cylinder r5(0.3, 1.7, 60, 0, 0, 0, 1.3, 14.5); cylinder r6(0.3, 2.5, 45, 0, 0, 0, 0, 13.5); cylinder c1(0.3, 2, 90, 0, 0, 0, 0, -15); cylinder c2(0.3, 2, -90, 0, 0, 0, 0, -15); cylinder c3(0.3, 3, 0, 0, 0, 0, -1.8, -15); cylinder c4(0.3, 3, 0, 0, 0, 0, 1.8, -15); cylinder plus1(0.3,3.5, 0, 0, 0, 0, 0, -11); cylinder plus2(0.3, 4, 90, 0, 0, 0, 2, -9.2); cylinder plus3(0.3, 3.5, 0, 0, 0, 0, 0, -6); cylinder plus4(0.3, 4, 90, 0, 0, 0, 2, -4.2); cy.draw(); sp.draw(); cu.draw(); tr.draw(); rec.draw(); k1.draw(); k2.draw(); k3.draw(); k4.draw(); u1.draw(); u2.draw(); u3.draw(); u4.draw(); u5.draw(); g1.draw(); g2.draw(); g3.draw(); g4.draw(); g5.draw(); g6.draw(); g7.draw(); e1.draw(); e2.draw(); e3.draw(); e4.draw(); e5.draw(); r1.draw(); r2.draw(); r3.draw(); r4.draw(); r5.draw(); r6.draw(); c1.draw(); c2.draw(); c3.draw(); c4.draw(); plus1.draw(); plus2.draw(); plus3.draw(); plus4.draw(); glFlush(); }