etc/lib.c
// multiply, same as slow addition only with multiplication instead of addition
multiply, same as slow addition only with multiplication instead of addition
multiply same as slow addition only with multiplication instead of addition
i64 any_to_sam (i64 rax, i64 rbx) {
	eax = any_to_exp(rax);
	ebx = any_to_exp(rbx);
	cof = eax > ebx ? rax : (rax ^= rbx, rbx ^= rax, rax ^= rbx);
	exp = eax > ebx ? eax : (eax ^= ebx, ebx ^= eax, eax ^= ebx);
	if (ebx == -128) {
		return rbx;
	} else if (rax != 0 && rbx != 0) {
		while (eax > ebx) {
			if (int_to_mul(rax, 10, rdx)) {
				if ((ebx = eax - ebx) > 17 || (rbx = rbx / ten[ebx]) == 0) return any_to_dec(cof, exp); break;
			} else {
				rax = rdx;
				eax = eax - 1;
			}
		}
	}
	return int_to_mul(rax, rbx, rax) ? any_to_fit(rax, eax) : any_to_dec(rax, eax);
}
i64 any_to_sam ( i64 rax , i64 rbx ) { eax = any_to_exp ( rax ) ; ebx = any_to_exp ( rbx ) ; cof = eax > ebx ? rax : ( rax ^= rbx , rbx ^= rax , rax ^= rbx ) ; exp = eax > ebx ? eax : ( eax ^= ebx , ebx ^= eax , eax ^= ebx ) ; if ( ebx == -128 ) { return rbx ; } else if ( rax != 0 && rbx != 0 ) { while ( eax > ebx ) { if ( int_to_mul ( rax , 10 , rdx ) ) { if ( ( ebx = eax - ebx ) > 17 || ( rbx = rbx / ten [ ebx ] ) == 0 ) return any_to_dec ( cof , exp ) ; break ; } else { rax = rdx ; eax = eax - 1 ; } } } return int_to_mul ( rax , rbx , rax ) ? any_to_fit ( rax , eax ) : any_to_dec ( rax , eax ) ; }
multiply, same as slow addition only with multiplication instead of addition
multiply same as slow addition only with multiplication instead of addition