44 lines · 598 B · C
RawDownload
#include "os.h"#include <mp.h>#include "dat.h" /* *  this code assumes that mpdigit is at least as *  big as an int. */ mpint*itomp(int i, mpint *b){	if(b == nil){		b = mpnew(0);		setmalloctag(b, getcallerpc(&i));	}	b->sign = (i >> (sizeof(i)*8 - 1)) | 1;	i *= b->sign;	*b->p = i;	b->top = 1;	return mpnorm(b);} intmptoi(mpint *b){	uint x; 	if(b->top==0)		return 0;	x = *b->p;	if(b->sign > 0){		if(b->top > 1 || (x > MAXINT))			x = (int)MAXINT;		else			x = (int)x;	} else {		if(b->top > 1 || x > MAXINT+1)			x = (int)MININT;		else			x = -(int)x;	}	return x;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t