boost::tuple< fit_tuple_t, fit_tuple_t > find_grad( const fitness_f &f, const fit_tuple_t ¤t, const double x2, const double delta ) { // Declare our first and 2nd derivatives int psize = current.get<0>().size(); int nsize = current.get<1>().size(); vector_t pgrad( psize ); vector_t ngrad( nsize ); vector_t plapl( psize ); vector_t nlapl( nsize ); // Protons for ( int i = 0; i < psize; ++i ) { fit_tuple_t plus( current ); fit_tuple_t minus( current ); plus.get<0>()[i] += delta; minus.get<0>()[i] -= delta; double x2plus = f( plus ); double x2minus = f( minus ); pgrad[i] = ( x2plus - x2minus ) / ( 2 * delta ); plapl[i] = ( x2plus + x2minus - 2 * x2 ) / bm::pow<2>(delta); } // Neutrons for ( int i = 0; i < nsize; ++i ) { fit_tuple_t plus( current ); fit_tuple_t minus( current ); plus.get<1>()[i] += delta; minus.get<1>()[i] -= delta; double x2plus = f( plus ); double x2minus = f( minus ); ngrad[i] = ( x2plus - x2minus ) / ( 2 * delta ); nlapl[i] = ( x2plus + x2minus - 2 * x2 ) / bm::pow<2>(delta); } return boost::make_tuple( fit_tuple_t( pgrad, ngrad ), fit_tuple_t( plapl, nlapl ) ); }
BigNumber addit(BigNumber A, BigNumber B) { if(A.neg == 0 && B.neg == 1) { B.neg = 0;return minus(A, B); } else if(A.neg == 1 && B.neg == 0) { A.neg = 0;return minus(B, A); } int a, p, h; BigNumber C; C.neg = A.neg; for(a = 0; a < L; a++) C.pv[a] = C.hv[a] = 0; for(a = 0; a <= A.pl; a++) C.pv[a] += A.pv[a]; for(a = 0; a <= B.pl; a++) C.pv[a] += B.pv[a]; for(a = 0; a <= A.hl; a++) C.hv[a] += A.hv[a]; for(a = 0; a <= B.hl; a++) C.hv[a] += B.hv[a]; h = (A.hl < B.hl) ? A.hl : B.hl;/*min*/ for(a = h; a >= 1; a--) C.hv[a-1] += C.hv[a]/10, C.hv[a] %= 10; C.pv[0] += C.hv[0]/10, C.hv[0] %= 10; p = (A.hl > B.hl) ? A.hl : B.hl;/*max*/ for(a = 0; a <= p; a++) C.pv[a+1] += C.pv[a]/10, C.pv[a] %= 10; p = L-1, h = L-1; while(C.pv[p] == 0 && p >= 0) p--; while(C.hv[h] == 0 && h >= 0) h--; C.pl = p, C.hl = h; return C; }
int main(void) { /* 28 Oct 2018 */ dt d2 = {28, 10, 2018}; /* 30 June 2006 */ dt d1 = {30, 6, 2006}; int days; int d1_pt = 0, d2_pt = 0; if (d1.year > d2.year) d1_pt += 100; else d2_pt += 100; if (d1.month > d2.month) d1_pt += 10; else d2_pt += 10; if (d1.day > d2.day) d1_pt += 1; else d2_pt += 1; days = (d1_pt > d2_pt) ? minus(d1, d2) : minus(d2, d1); print_dt(d1); print_dt(d2); printf("number of days: %d \n", days); return 0; }
int main() { int n; while(scanf("%d",&n)+1) { if(n==0) break; printf("%d %d\n",(minus(f(6,n-1),1)*f(5,MOD-2)+1)%MOD,minus(f(6,n),1)*f(5,MOD-2)%MOD); } return 0; }
// date := year minus month minus day . void date() { year(); minus(); month(); minus(); day(); }
int calculate(string s) { if(s == "") return 0; vector<int> numRow; vector<char> symbol; int count = 0; bool flag = true; for(auto c : s){ if(c >= '0' && c <= '9'){ count = int(c-'0') + count * 10; if(flag) flag = false; }else if(c == '+' || c == '-'){ if(!flag){ numRow.push_back(count); flag = true; count = 0; } if( symbol.size() != 0){ if(symbol.back() == '-'){ minus(numRow); symbol.pop_back(); }else if(symbol.back() == '+'){ plus(numRow); symbol.pop_back(); } } symbol.push_back(c); }else if(c == '('){ symbol.push_back(c); }else if(c == ')'){ if(!flag){ numRow.push_back(count); flag = true; count = 0; } if(symbol.back() == '-'){ minus(numRow); symbol.pop_back(); }else if(symbol.back() == '+'){ plus(numRow); symbol.pop_back(); } symbol.pop_back(); } } if(!flag) numRow.push_back(count); if(symbol.size() == 0) return numRow.back();/* for(auto i = symbol.rbegin(); i != symbol.rend();i++){ if(*i == '-') minus(numRow); else plus(numRow); }*/ else{ cout<<"out"<<endl; if(symbol.back() == '+') plus(numRow); else minus(numRow); } return numRow.back(); }
// Arithmetic binary operator- LongInt LongInt::operator-(const LongInt &rhs) { LongInt result, a = *this, b = rhs; // Positive Lhs - Negative Rhs if (a.sign == true && b.sign == false) { b.sign = true; return a + b; } // Negative Lhs - Positive Rhs else if (a.sign == false && b.sign == true) { b.sign = false; return a + b; } // Negative Lhs - Negative Rhs else if (a.sign == false && b.sign == false) { a.sign = true, b.sign = true; if (a < b) { minus(result, b, a, a.digits.size() - 1, b.digits.size() - 1); result.sign = true; } else if (a > b) { minus(result, a, b, b.digits.size() - 1, a.digits.size() - 1); result.sign = false; } else { result.digits.push_back(0 + '0'); result.sign = true; } } // Positive Lhs - Positive Rhs else if (a.sign == true && b.sign == true) { if (a > b) { minus(result, a, b, b.digits.size() - 1, a.digits.size() - 1); result.sign = true; } else if (a < b) { minus(result, b, a, a.digits.size() - 1, b.digits.size() - 1); result.sign = false; } else { result.digits.push_back(0 + '0'); result.sign = true; } } return result; }
int main(void) { char a[50]; char b[50]; scanf("%s", a); scanf("%s", b); printf("%d %d", (int) strlen(a), (int) strlen(b)); int a_length = (int) strlen(a); int b_length = (int) strlen(b); int a_tag = 1; int i; if (a[0] == '-') { a_tag = -1; for (i = 1; i < a_length; i++) { a[i - 1] = a[i]; } a_length -= 1; } int b_tag = 1; if (b[0] == '-') { b_tag = -1; for (i = 1; i < b_length; i++) { b[i - 1] = b[i]; } b_length -= 1; } char c[51]; int i; // for (i = 0; i < 50; i++) { // printf("%c", a[i]); // printf("%c", b[i]); // } if (a_tag > 0) { if (b_tag > 0) { //+ printf("%s", add(a, b)); //- if (a > b) { printf("%s", add(a, b)); } else { printf("%s", minus(b, a)); } //* printf("%s", minus(b, a)); } else { } } else { if (b_tag > 0) { } else { } } }
void working() { int tmp; for ( ; i < end; i++) switch ( input[i] ) { case '>' : p = plus(p); break; case '<' : p = minus(p); break; case '|' : p = 0; break; case ',' : scanf("%d",&tmp ); tape[p] = tmp; break; case '.' : printf("%u\n", tape[p]); break; case '=' : tape[p] = tape[ minus(p) ]; break; case '0' : tape[p] = 0; break; case '!' : var = tape[p]; break; case '?' : tape[p] = var; break; case '*' : tape[p] = ( tape[p] * tape[minus(p)] ) % 256; break; case '/' : tape[p] = tape[p] / tape[minus(p)]; break; case '+' : tape[p] = (tape[p]==255)?0:(tape[p]+1); break; case '-' : tape[p] = (!tape[p])?0:(tape[p]-1); break; case '^' : printf("%d", var); break; case '$' : var = p; case '(' : if (!tape[p]) { tmp = 1; for (i++; tmp; i++) if (input[i]=='(') tmp++; else if (input[i]==')') tmp--; i--; } break; case '[' : if ( !tape[p] ) { tmp = 1; for (i++; tmp; i++) if (input[i]=='[') tmp++; else if (input[i]==']') tmp--; i--; } else { i++; tmp = i; do { i = tmp; working(); } while ( tape[p] ); } break; case ']' : return; } }
void exitUsage(struct rusage * usageBegin){ struct rusage usageEnd; struct timeval userBeg, systemBeg, userEnd, systemEnd; if(0 == getrusage(RUSAGE_SELF, &usageEnd)){ userBeg = (*usageBegin).ru_utime; systemBeg = (*usageBegin).ru_stime; userEnd = (usageEnd).ru_stime; systemEnd = (usageEnd).ru_stime; printf("TIME SPENT IN FANTASTIC USER MODE <3 %ld.%ld sec <3\n", minus(userBeg.tv_sec, userEnd.tv_sec), minus(userBeg.tv_usec, userEnd.tv_usec)); printf("TIME SPENT IN WONDERFUL KERNEL MODE :$ %ld.%ld sec :$ \n", minus(systemBeg.tv_sec, systemEnd.tv_sec), minus(systemBeg.tv_usec, systemEnd.tv_usec)); } return; }
namespace boost { namespace hana { namespace test { template <typename G> auto laws<Group, G> = [] { static_assert(models<Group(G)>{}, ""); laws<Monoid, G>(); // Instance laws { for_each(objects<G>, [](auto x) { BOOST_HANA_CHECK(equal( plus(x, negate(x)), zero<G>() )); BOOST_HANA_CHECK(equal( plus(negate(x), x), zero<G>() )); }); } // minus { for_each(objects<G>, [](auto x) { for_each(objects<G>, [=](auto y) { BOOST_HANA_CHECK(equal( minus(x, y), plus(x, negate(y)) )); BOOST_HANA_CHECK(equal( minus(y, x), plus(y, negate(x)) )); }); }); } // negate { for_each(objects<G>, [](auto x) { BOOST_HANA_CHECK(equal( negate(negate(x)), x )); }); } }; }}} // end namespace boost::hana::test
void dfs(int i, int s1, int s2, bool cling) { if ( i == n ) { printf("%s\n", cur); exit(0); } for ( int a = cling?str[i]:'a'; a <= 'z'; a ++ ) { if ( (i-d+1<0 || plus(mul(s1,BASE),a) != plus(s2,mul(powD,a))) && (i-d<0 || plus(mul(cur[i-d],mul(powD,BASE)),plus(mul(s1,BASE),a)) != plus(cur[i-d],mul(BASE,plus(s2,mul(powD,a))))) ) { cur[i] = (char)a; dfs(i+1, minus(plus(mul(s1,BASE),a),i-d+1>=0?mul(powD,cur[i-d+1]):0), mul(plus(minus(s2,(i-d+1>=0?cur[i-d+1]:0)),mul(powD,a)),kInv), cling&&a==str[i]); } } }
int ft_printf_x(va_list ap, t_flags f) { t_len lenf; unsigned long long nb; char *print; lenf.len = 0; lenf.tmp_len = 0; nb = unsigned_check(ap, f); print = ft_itoa_base(nb, 16); if (f.hashtag == 1) lenf.tmp_len += 2; if ((int)ft_strlen(print) < f.precision) lenf.tmp_len += f.precision; else lenf.tmp_len += ft_strlen(print); if (lenf.tmp_len >= (int)f.len_field) lenf.len += print_number(print, f, nb, f.precision); else if (f.minus == 1) lenf.len = minus(f, lenf.len, nb, print); else { while (lenf.len < (int)f.len_field - lenf.tmp_len && f.zero != 1) lenf.len += ft_putchar(' '); lenf.len += print_number(print, f, nb, (int)f.len_field - lenf.tmp_len); } return (free_ret(print, lenf.len)); }
long_class long_class::operator-(long_class &right) { long_class res, tmp; tmp.me = minus(this->me); res.me = sum_and_sub(tmp.me, right.me); return res; }
int main() { int x = 0,a = 0; char simvol; stack *stek_chisel = constructor(30); while ((simvol = getchar())!='\n') { switch(simvol) { case ' ': break; case '+': add(stek_chisel); break; case '*': mul(stek_chisel); break; case '-': minus(stek_chisel); break; case '/': div(stek_chisel); break; default: x = simvol-'0'; push(stek_chisel,x); } } a = pop(stek_chisel); printf("%d", a); Destroy(stek_chisel); return 0; }
calc::calc(QWidget *parent) : QMainWindow(parent) { setupUi(this); setFixedSize(sizeHint()); clearall(); connect (Button1,SIGNAL(clicked()),this,SLOT(add1())); connect (Button2,SIGNAL(clicked()),this,SLOT(add2())); connect (Button3,SIGNAL(clicked()),this,SLOT(add3())); connect (Button4,SIGNAL(clicked()),this,SLOT(add4())); connect (Button5,SIGNAL(clicked()),this,SLOT(add5())); connect (Button6,SIGNAL(clicked()),this,SLOT(add6())); connect (Button7,SIGNAL(clicked()),this,SLOT(add7())); connect (Button8,SIGNAL(clicked()),this,SLOT(add8())); connect (Button9,SIGNAL(clicked()),this,SLOT(add9())); connect (Button0,SIGNAL(clicked()),this,SLOT(add0())); connect (backButton,SIGNAL(clicked()),this,SLOT(delnum())); connect (pointButton,SIGNAL(clicked()),this,SLOT(insertpoint())); connect (plusButton,SIGNAL(clicked()),this,SLOT(plus())); connect (minusButton,SIGNAL(clicked()),this,SLOT(minus())); connect (multiplyButton,SIGNAL(clicked()),this,SLOT(multiply())); connect (divideButton,SIGNAL(clicked()),this,SLOT(divide())); connect (equalButton,SIGNAL(clicked()),this,SLOT(equal())); connect (CButton,SIGNAL(clicked()),this,SLOT(clearall())); connect (actionAbout_Qt,SIGNAL(triggered()),this,SLOT(about())); connect (actionExit,SIGNAL(triggered()),this,SLOT(close())); connect (pmButton,SIGNAL(clicked()),this,SLOT(togglepm())); }
int main() { bignum l1 = from_str("99"), l2 = from_str("10"); printf("%s\n", to_str(from_int(666))); printf("%d\n", to_int(from_str("666"))); bignum sum = plus(l1, l2); printf("%s\n", to_str(sum)); bignum diff = minus(l1, l2); printf("%s\n", to_str(diff)); printf("%i\n", lesser(l1, l2)); bignum muli = mul_int(l1, 2); printf("%s\n", to_str(muli)); printf("%d\n", mod_int(l1, 10)); bignum divi = div_int(l1, 10); printf("%s\n", to_str(divi)); bignum mul = multiply(l1, l2); printf("%s\n", to_str(mul)); bignum div = divide(l1, l2); printf("%s\n", to_str(div)); bignum mod = modulo(l1, l2); printf("%s\n", to_str(mod)); return 0; }
void digit_gen(diy_fp_t W, diy_fp_t Mp, diy_fp_t delta, char* buffer, int* len, int* K) { uint32_t div; int d,kappa; diy_fp_t one, wp_w; wp_w = minus(Mp, W); one.f = ((uint64_t) 1) << -Mp.e; one.e = Mp.e; uint32_t p1 = Mp.f >> -one.e; /// Mp_cut uint64_t p2 = Mp.f & (one.f - 1); *len = 0; kappa = 10; div = TEN9; while (kappa > 0) { d = p1 / div; if (d || *len) buffer[(*len)++] = '0' + d; /// Mp_inv1 p1 %= div; kappa--; uint64_t tmp = (((uint64_t)p1)<<-one.e)+p2; if (tmp <= delta.f) { /// Mp_delta *K += kappa; grisu_round(buffer, *len, delta.f, tmp, ((uint64_t)div) << -one.e, wp_w.f); return; } div /= 10; } uint64_t unit = 1; while (1) { p2 *= 10; delta.f *= 10; unit *= 10; d = p2 >> -one.e; if (d || *len) buffer[(*len)++] = '0' + d; p2 &= one.f - 1; kappa--; if (p2 < delta.f) { *K += kappa; grisu_round(buffer, *len, delta.f, p2, one.f, wp_w.f*unit); return; } } }
int *GBB(int *arr1, int *arr2){ //arr1 > arr2; int ans = 1; while (notZero(arr1)==1 && notZero(arr2)==1) { if (arr2[0] % 2 == 0 && arr1[0] % 2 ==0){ ans *= 2; //printf("ans*2\n"); arr1 = divTwo(arr1); arr2 = divTwo(arr2); continue; } else if (arr2[0] % 2 == 0 && arr1[0] %2 == 1){ arr2 = divTwo(arr2); continue; } else if (arr2[0] % 2 == 1 && arr1[0] %2 == 0){ arr1 = divTwo(arr1); continue; } if (compare(arr1, arr2) == 1) { swap(arr1, arr2); // printf("swap"); } arr1 = minus(arr1, arr2); // printf("minus\n"); } printf("ans: %d\n", ans); printf("Final arr2:\n"); printNum(arr2); return times(arr2, ans); }
int Viewfinder::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: processFrames((*reinterpret_cast< int(*)>(_a[1]))); break; case 1: processFrame(); break; case 2: toggleCube(); break; case 3: toggleGourd(); break; case 4: paintCube(); break; case 5: paintGourd(); break; case 6: changeX(); break; case 7: changeY(); break; case 8: changeZ(); break; case 9: rotateX(); break; case 10: rotateY(); break; case 11: rotateZ(); break; case 12: plus(); break; case 13: minus(); break; case 14: openDirectory(); break; default: ; } _id -= 15; } return _id; }
main() { char x[200], y[20]; /*freopen("in1.txt", "rt", stdin); freopen("out1.txt", "w+t", stdout);*/ while(scanf("%s", x) == 1) { BigNumber s1, s2, Ans, A; sprintf(y, "%d", 1); s1 = Change(x), s2 = Change(y); A = s1; sprintf(y, "%d", 0); Ans = Change(y); int a, t = 0; for(a = 1; a < 300; a += 2, t = 1-t) { if(t == 0) Ans = addit(Ans, divis(s1, s2)); else Ans = minus(Ans, divis(s1, s2)); /*Print(s1); puts(""); Print(s2); puts("");*/ s1 = multi(A, multi(s1, A)); sprintf(y, "%d", (a+1)*(a+2)); s2 = multi(s2, Change(y)); } Print(Ans); puts(""); } return 0; }/*
int main(void){ int kotae; int mode; puts("足し算(1)と引き算(2)掛け算(3)割り算(4)どの計算する?"); puts("()の中の数字を入力してね!"); scanf("%d", &mode); switch(mode){ case 1:kotae = plus(); break; case 2:kotae = minus(); break; case 3:kotae = multi(); break; case 4:kotae = div(); } printf("答えは%dです",kotae); scanf("%d", &kotae); return 0; }
int main(){ FILE *fp = NULL; int operand1, operand2; char operator = ' '; int result, line = 0; fp = fopen("read.txt","r"); if(fp!=NULL){ fscanf(fp, "%d", &line); for(int i=0; i<line; i++) { fscanf(fp, "%d %c %d",&operand1, &operator, &operand2); switch(operator) { case '+': result = add(operand1, operator); break; case '-': result = minus(operand1, operator); break; case '*': result = mul(operand1, operator); case '/': result = div(operand1, operator); break; } printf("%d %c %d = %d\n", operand1, operator, operand2, result); } } return 0; }
int main(){ int i,j,k,l,test,t=1; // freopen("in.txt","r",stdin); scanf("%d",&test); while(test--){ scanf("%d %d %d %d",&A,&B,&S1,&S2); node ans1=node(S2*B,A-S2); node ans2=node(S1*B,A-S1); node ans=minus(ans1,ans2); if(ans.num<0) ans.num*=-1; if(ans.den<0) ans.den*=-1; printf("Case %d: %d/%d\n",t++,ans.num,ans.den); } return 0; }
int main() { char input[10000] = {0,}; char fir[100][100] = {0,}, sec[100] = {0,}; int i, j, k, m; printf("수를 입력하세요 : "); gets(input); printf("input:%s\n", input); for(i=0, j=0, k=0, m=0; input[i] != '\0'; i++){ if((input[i] >= '0')&&(input[i] <= '9')||(input[i] == '.')){ fir[j][k] = input[i]; k++; if((input[i+1] < '0')||(input[i+1] > '9')){ fir[j][k] = '\0'; j++; k = 0; } } else if(input[i] != ' '){ sec[m] = input[i]; m++; } } sec[m] = '\0'; int s = 0; if (sec[s] == '+') plus(s); printf("%d", minus(fir)); return 0; }
int ft_printf_o2(unsigned long nb, t_flags f) { int len; char *print; int tmp_len; len = 0; tmp_len = 0; print = ft_itoa_base(nb, 8); if (f.hashtag == 1 && nb > 0 && f.precision < (int)ft_strlen(print)) tmp_len += 1; if ((int)ft_strlen(print) < f.precision && f.precision >= 0) tmp_len += f.precision; else tmp_len += ft_strlen(print); if (tmp_len >= (int)f.len_field) len += print_number(print, f, nb); else if (f.minus == 1) len = minus(len, print, f, nb); else { while (len < (int)f.len_field - tmp_len) len += ft_putchar(' '); len += print_number(print, f, nb); } free(print); return (len); }
int main () { int num; int j = 0; int k = i; // 증감된 i의 값을 k값에 대입 printf("2진수로 바꿀 숫자를 입력해주세요. : "); scanf("%d",&num); // 매개변수에 값 입력 if (num>=0){ // 입력받은 숫자가 양수일때 plus(num); printf("\n"); } else if(num<0){ // 입력받은 숫자가 음수일떼 num = -num; // 입력받은 음수를 양수로 변환 minus(num); int l=i; // i값을 불러옴 for (int l=i; l>=0; l--){ if (story[l] == 0){ // 자리가 0이면 1을 더해줌 story[l] = story[l] + 1; break; // 반복문 탈출 } else if (story[l] == 1){ // 자리가 1이면 0으로 // 바꿔줌 story[l] = 0; } } if (story[k] == 0) // 15와 같이 1111의 음수인 -15와 같은 // 수를 2진법으로 표현하기 위해 앞자리를 // 추가하고 1로 바꿔줌 story[k] = 1; print(j); // 재귀함수를 이용해 출력 } return 0; }
int main() { int num1; int num2; int result; char flag; printf("please input first number\n"); scanf("%d",&num1); printf("please input char\n"); scanf("%c",&flag); printf("please input second number\n"); scanf("%d",&num2); switch(flag){ case '+': result = sum(num1,num2); break; case '-': result = minus(num1,num2); break; case '*': result = multi(num1,num2); break; case '/': result = devide(num1,num2); break; default: break; } printf("result is : %d\n",result); return 0; }
CalculatorDialog::CalculatorDialog(QWidget *parent): QDialog(parent), lastResult(0) { setWindowTitle(tr("Calculator with log")); //generating QVBoxLayout * mainLayout = new QVBoxLayout(this); QHBoxLayout * buttonsLayout = new QHBoxLayout(); numberInput = new QLineEdit(this); QDoubleValidator * inputValidator = new QDoubleValidator( numberInput); numberInput->setValidator( inputValidator); QPushButton * plusB = new QPushButton("+",this); QPushButton * minusB = new QPushButton("-",this); QPushButton * multiplyB = new QPushButton("*",this); QPushButton * divideB = new QPushButton("/",this); //positioning mainLayout->addWidget( numberInput); mainLayout->addLayout( buttonsLayout); buttonsLayout->addWidget( plusB); buttonsLayout->addWidget( minusB); buttonsLayout->addWidget( multiplyB); buttonsLayout->addWidget( divideB); //connecting connect(plusB,SIGNAL( clicked() ),SLOT( plus() )); connect(minusB,SIGNAL( clicked() ),SLOT( minus() )); connect(multiplyB,SIGNAL( clicked() ),SLOT( multiply() )); connect(divideB,SIGNAL( clicked() ),SLOT( divide() )); connect(plusB,SIGNAL( clicked() ), numberInput, SLOT( setFocus() )); connect(minusB,SIGNAL( clicked() ), numberInput, SLOT( setFocus() )); connect(multiplyB,SIGNAL( clicked() ), numberInput, SLOT( setFocus() )); connect(divideB,SIGNAL( clicked() ), numberInput, SLOT( setFocus() )); }
int main() { add(); minus(); mutilplication(); divide(); return 0; }