1 Star 0 Fork 0

zhouxs1023/eigenmath_pratt

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
qdiv.cpp 623 Bytes
一键复制 编辑 原始数据 按行查看 历史
Calin Barbat 提交于 2018-02-24 10:52 . Initial commit.
// Divide rational numbers
//
// Input: tos-2 dividend
//
// tos-1 divisor
//
// Output: quotient on stack
#include "stdafx.h"
#include "defs.h"
void
qdiv(void)
{
unsigned int *aa, *bb, *c;
save();
p2 = pop();
p1 = pop();
// zero?
if (MZERO(p2->u.q.a))
stop("divide by zero");
if (MZERO(p1->u.q.a)) {
push(zero);
restore();
return;
}
aa = mmul(p1->u.q.a, p2->u.q.b);
bb = mmul(p1->u.q.b, p2->u.q.a);
c = mgcd(aa, bb);
MSIGN(c) = MSIGN(bb);
p1 = alloc();
p1->k = NUM;
p1->u.q.a = mdiv(aa, c);
p1->u.q.b = mdiv(bb, c);
mfree(aa);
mfree(bb);
mfree(c);
push(p1);
restore();
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/zhouxs1023/eigenmath_pratt.git
git@gitee.com:zhouxs1023/eigenmath_pratt.git
zhouxs1023
eigenmath_pratt
eigenmath_pratt
master

搜索帮助