void foo() { int test = assert_same_type( f(slew(.799).name("z")) , named_params< name_tag, char const[2] // .name("z") , named_params< slew_tag, double const // slew(.799) , nil_t > > ()); }
void CellularAutomata::onSimulation(double currentSampleCount, double sampleDelta) { SimTime deltaTime = float(sampleDelta) / m_sampleRate; m_displayInterpolationFactor = slew(m_displayInterpolationFactor, m_displayMode, deltaTime, 0.8f); if (m_paused) { m_currentTime = floor(m_currentTime / stepTime())*stepTime(); return; } int oldBeatNum = beatNum(); m_currentTime += deltaTime; int newBeatNum = beatNum(); if (newBeatNum != oldBeatNum) { step(); } for (const HeadWallCollision& c : m_wallCollisions) { int index = isVert(c.d) ? c.pos.x : c.pos.y; Synthesizer::global->queueSound(m_soundBank[index]); } }
void output() { mtrTarget[D_LEFT] = outDrvL; mtrTarget[D_RIGHT] = outDrvR; for (int j=0; j<3; j++) { #ifdef SLEW mtrSlewed[j] += slew(mtrTarget[j], mtrSlewed[j], slewConstants[j]); //SLEW CONTROLLERS #endif capValue(-100, mtrSlewed[j], 100); //CAP ALL MOTORS motor[j] = mtrSlewed[j]; //ASSIGN MOTORS } string temp1,temp2; StringFormat(temp1,"Time:%.1f",((float)autoTimer/1000)); StringFormat(temp2, "Step: %d", autoStep); //Show step nxtDisplayCenteredTextLine(0,temp1); nxtDisplayCenteredTextLine(1,temp2); }
/* * Copy a block of source and code to * the listing file. If no listing file or * the current line is not to be listed * just return. Multiple code bytes get * put out on extra lines after the source * line. */ VOID list() { register char *wp; register int *wpt; register nb; if (lfp == NULL || lmode == NLIST) return; slew(lfp, 0); while (ep < &eb[NERR]) *ep++ = ' '; fprintf(lfp, "%.2s", eb); if (lmode == SLIST) { fprintf(lfp, "%24s%5u %s\n", "", line, ib); return; } if (xflag == 0) { /* HEX */ fprintf(lfp, " %04X", laddr); if (lmode == ALIST) { fprintf(lfp, "%19s%5u %s\n", "", line, ib); return; } wp = cb; wpt = cbt; nb = (int) (cp - cb); list1(wp, wpt, nb, 1); fprintf(lfp, " %5u %s\n", line, ib); while ((nb -= 6) > 0) { wp += 6; wpt += 6; slew(lfp, 0); fprintf(lfp, "%7s", ""); list1(wp, wpt, nb, 0); putc('\n', lfp); } } else if (xflag == 1) { /* OCTAL */ fprintf(lfp, " %06o", laddr); if (lmode == ALIST) { fprintf(lfp, "%17s%5u %s\n", "", line, ib); return; } wp = cb; wpt = cbt; nb = (int) (cp - cb); list1(wp, wpt, nb, 1); fprintf(lfp, " %5u %s\n", line, ib); while ((nb -= 4) > 0) { wp += 4; wpt += 4; slew(lfp, 0); fprintf(lfp, "%9s", ""); list1(wp, wpt, nb, 0); putc('\n', lfp); } } else if (xflag == 2) { /* DECIMAL */ fprintf(lfp, " %05u", laddr); if (lmode == ALIST) { fprintf(lfp, "%17s%5u %s\n", "", line, ib); return; } wp = cb; wpt = cbt; nb = (int) (cp - cb); list1(wp, wpt, nb, 1); fprintf(lfp, " %5u %s\n", line, ib); while ((nb -= 4) > 0) { wp += 4; wpt += 4; slew(lfp, 0); fprintf(lfp, "%9s", ""); list1(wp, wpt, nb, 0); putc('\n', lfp); } } }
VOID lstarea(struct area *xp, struct bank *yp) { struct areax *oxp; int i, j, n; char *frmt, *ptr; int nmsym; a_uint a0, ai, aj; struct sym *sp; struct sym **p; /* sdld specific */ int memPage; /* end sdld specific */ /* * Find number of symbols in area */ nmsym = 0; oxp = xp->a_axp; while (oxp) { for (i=0; i<NHASH; i++) { sp = symhash[i]; while (sp != NULL) { if (oxp == sp->s_axp) ++nmsym; sp = sp->s_sp; } } oxp = oxp->a_axp; } if ((nmsym == 0) && (xp->a_size == 0)) { return; } lop = NLPP; slew(xp, yp); if (nmsym == 0) { return; } /* * Allocate space for an array of pointers to symbols * and load array. */ if ( (p = (struct sym **) malloc (nmsym*sizeof(struct sym *))) == NULL) { fprintf(mfp, "Insufficient space to build Map Segment.\n"); return; } nmsym = 0; oxp = xp->a_axp; while (oxp) { for (i=0; i<NHASH; i++) { sp = symhash[i]; while (sp != NULL) { if (oxp == sp->s_axp) { p[nmsym++] = sp; } sp = sp->s_sp; } } oxp = oxp->a_axp; } if (is_sdld()) { /* * Quick Sort of Addresses in Symbol Table Array */ qsort(p, nmsym, sizeof(struct sym *), _cmpSymByAddr); } else { /* * Bubble Sort of Addresses in Symbol Table Array */ j = 1; while (j) { j = 0; sp = p[0]; a0 = sp->s_addr + sp->s_axp->a_addr; for (i=1; i<nmsym; ++i) { sp = p[i]; ai = sp->s_addr + sp->s_axp->a_addr; if (a0 > ai) { j = 1; p[i] = p[i-1]; p[i-1] = sp; } a0 = ai; } } } /* * Repeat Counter */ switch(a_bytes) { default: case 2: n = 4; break; case 3: case 4: n = 3; break; } /* * Symbol Table Output */ /* sdld specific */ memPage = (xp->a_flag & A_CODE) ? 0x0C : ((xp->a_flag & A_XDATA) ? 0x0D : ((xp->a_flag & A_BIT) ? 0x0B : 0x00)); /* end sdld specific */ i = 0; while (i < nmsym) { if (wflag) { slew(xp, yp); if (is_sdld()) { switch(a_bytes) { default: case 2: frmt = " "; break; case 3: case 4: frmt = ""; break; } if (memPage != 0) fprintf(mfp, "%s%X:", frmt, memPage); else fprintf(mfp, "%s ", frmt); } else { switch(a_bytes) { default: case 2: frmt = " "; break; case 3: case 4: frmt = " "; break; } fprintf(mfp, "%s", frmt); } } else if ((i % n) == 0) { slew(xp, yp); switch(a_bytes) { default: case 2: frmt = " "; break; case 3: case 4: frmt = " "; break; } fprintf(mfp, "%s", frmt); } sp = p[i]; aj = (sp->s_addr + sp->s_axp->a_addr) & a_mask; #ifdef LONGINT switch(a_bytes) { default: case 2: switch(xflag) { default: case 0: frmt = " %04lX "; break; case 1: frmt = "%06lo "; break; case 2: frmt = " %05lu "; break; } break; case 3: switch(xflag) { default: case 0: frmt = " %06lX "; break; case 1: frmt = " %08lo "; break; case 2: frmt = " %08lu "; break; } break; case 4: switch(xflag) { default: case 0: frmt = " %08lX "; break; case 1: frmt = "%011lo "; break; case 2: frmt = " %010lu "; break; } break; } #else switch(a_bytes) { default: case 2: switch(xflag) { default: case 0: frmt = " %04X "; break; case 1: frmt = "%06o "; break; case 2: frmt = " %05u "; break; } break; case 3: switch(xflag) { default: case 0: frmt = " %06X "; break; case 1: frmt = " %08o "; break; case 2: frmt = " %08u "; break; } break; case 4: switch(xflag) { default: case 0: frmt = " %08X "; break; case 1: frmt = "%011o "; break; case 2: frmt = " %010u "; break; } break; } #endif fprintf(mfp, frmt, aj); ptr = &sp->s_id[0]; #if NOICE /* * NoICE output of symbol */ if (jflag) DefineNoICE(ptr, aj, yp); #endif #if SDCDB /* * SDCDB output of symbol */ if (yflag) DefineSDCDB(ptr, aj); #endif if (wflag) { fprintf(mfp, "%-32.32s", ptr); i++; ptr = &sp->m_id[0]; if(ptr) { fprintf(mfp, " %-.28s", ptr); } } else { switch(a_bytes) { default: case 2: frmt = "%-8.8s"; break; case 3: case 4: frmt = "%-9.9s"; break; } fprintf(mfp, frmt, ptr); if (++i < nmsym) if (i % n != 0) fprintf(mfp, " | "); } if (wflag || (i % n == 0)) { putc('\n', mfp); } } if (i % n != 0) { putc('\n', mfp); } free(p); }