复数库源码,包括双精度库与加长型双精度库

这个博客详细介绍了如何实现复数类库,包括双精度浮点数和加长双精度浮点数的复杂数操作,如加减乘除、开方、指数、正弦、余弦、对数等。通过使用C++,定义了名为COMP和LCOMP的类,提供了相应的成员函数进行复杂数的运算,并展示了部分代码实现。
摘要由CSDN通过智能技术生成

#ifdef PI
#undef PI
#define PI 3.141592653589793238462643383
#endif

#ifndef COMPLEX_H_
#define COMPLEX_H_
#include <math.h>
#include <iostream>
using namespace std;
//2013.10.26 ??????
class COMP{                        //????COMP??
public:
    double rmz,imz;                    //??????
public:
    COMP()
    {rmz=0;imz=0;}
    COMP power(int n);
    COMP root(int n);//????
    COMP csin(void);
    COMP ccos(void);
    COMP clog(void);
    COMP cexp(void);
    COMP operator+ (COMP);        //???????
    COMP operator+ (double);    //???????
    COMP operator* (COMP);        //??????*
    COMP operator* (double );    //??????*
    COMP operator/ (COMP);        //
    COMP operator/ (double);    //
    COMP operator- (COMP);        //???????
    COMP operator- (double);    //???????
    COMP operator++();                //???
    void setCOMP(double , double);        //?趨????λ??
    void show();                //???????λ??
};

// ?????????????????????????+
//??????????????λ?????
COMP COMP::operator+(COMP point)

    COMP dot;    //??????Spot?????dot
    dot.rmz = rmz + point.rmz;
    dot.imz = imz + point.imz;
    return dot;
}

//??????????????λ?????
COMP COMP::operator-(COMP point){ 
    COMP dot;
    dot.rmz = rmz - point.rmz;
    dot.imz = imz - point.imz;
    return dot;
}
COMP COMP::operator-(double point){ 
    COMP dot;
    dot.rmz = rmz - point;
    dot.imz = imz ;
    return dot;
}

//??????λ?ü??????
COMP COMP::operator+(double num){ 
    COMP dot;
    dot.rmz = rmz + num;
    dot.imz = imz ;
    return dot;
}
//???????
COMP COMP::operator++(){
    rmz = rmz +1;
    imz = imz + 1;
    return *this;//?????????
}

//???????setSpot???趨????
void COMP::setCOMP(double x, double y){
    rmz = x;
    imz = y;
}

//???????display?????????
void COMP::show(){
    cout<<"\n"<<rmz<<"+i"<<imz<<endl;
}
/*======================================================
//????????comp_product.c
//??????????????????
//?????????a1???????????a????壩
//          a2???????????b????壩
//          c????????????壩
//???????0????????1???????
=========================================================*/
COMP COMP::operator*(COMP point){ 
    COMP dot;    //??????Spot?????dot
    double p,q,s;    
    p = rmz*(point.rmz);
    q = imz*(point.imz);
    s = (rmz + imz)*(point.rmz + point.imz);
    dot.rmz = p - q;
    dot.imz = s - p - q;
    return dot;
}
COMP COMP::operator*(double point)

    COMP dot;    //??????Spot?????dot
    double p,q ;    
    p = rmz*point;
    q = imz*point;   
    dot.rmz = p;
    dot.imz = q;
    return dot;
}
/*================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值