A better version of maxchen32/radical.
C语言编写的基础分数、二次根式和多项式类库。
radicalite is a library written in C for Fractions, Radicals, and Polynomials.
确保你安装了C编译器(GCC/MinGW,Clang,MSVC……),如果没有的话,Windows用户建议
使用这个编译好的 MinGW-gcc,Linux用户请通过所用发行版
的包管理器安装。
Make sure you have a C compiler (GCC/MinGW,Clang,MSVC...) installed. If not,
Windows users are recommended to use this precompiled MinGW-gcc,
and Linux users can install it through the distribution's package manager.
建议使用 xmake ,但是我们也提供 CMake 支持。
It is recommended to use xmake, but we also provide
support for CMake.
xmake f -m release
xmake如果你在windows上使用MinGW,第一行得写成:
If you are using MinGW on windows, the first line should be written as:
xmake f -m release --toolchain=mingw
如果你想要安装到系统的话(默认 /usr/local/lib ):
If you want to install into the system (default is /usr/local/lib ):
xmake install --admin如果你想要编译示例程序的话:
If you want to compile the example program:
xmake -a
mkdir build
cd build
cmake ..
cmake --build .如果你想要安装到系统的话(默认 /usr/local/lib ):
If you want to install into the system (default is /usr/local/lib ):
sudo cmake --install .正在编写更多的文档,敬请期待......
More documentation coming soon...
或者你可以先看看头文件:
Or you can take a look at the header file first:
下面这些表说明了在不同类型之间运算应该使用什么函数
These tables describe what functions should be used to operate between different types.
| ADD | Fraction | Radical | Polynomial | int |
|---|---|---|---|---|
| Fraction | addFrac | Frac2Rad+addRad | Frac2Rad+addRad | int2Frac+addFrac |
| Radical | Frac2Rad+addRad | addRad | addRad | int2Rad+addRad |
| Polynomial | Frac2Rad+addRad | addRad | addPoly | int2Rad+addRad |
| int | int2Frac+addFrac | int2Rad+addRad | int2Rad+addRad | + |
| SUBTRAT | Fraction | Radical | Polynomial | int |
|---|---|---|---|---|
| Fraction | subFrac | Frac2Rad+subRad | Frac2Rad+subRad | int2Frac+subFrac |
| Radical | Frac2Rad+subRad | subRad | subRad | int2Rad+subRad |
| Polynomial | Frac2Rad+subRad | subRad | subPoly | int2Rad+subRad |
| int | int2Frac+subFrac | int2Rad+subRad | int2Rad+subRad | - |
| multiply | Fraction | Radical | Polynomial | int |
|---|---|---|---|---|
| Fraction | mulFrac | Frac2Rad+mulRad | Frac2Rad+mulRadPoly | int2Frac+mulFrac |
| Radical | Frac2Rad+mulRad | mulRad | mulRadPoly | int2Rad+mulRad |
| Polynomial | Frac2Rad+mulRadPoly | mulRadPoly | mulPoly | int2Rad+mulRadPoly |
| int | int2Frac+mulFrac | int2Rad+mulRad | int2Rad+mulRadPoly | * |
| divide | Fraction | Radical | Polynomial | int |
|---|---|---|---|---|
| Fraction | divFrac | Frac2Rad+divRad | Frac2Rad+divRadPoly | int2Frac+divFrac |
| Radical | Frac2Rad+divRad | divRad | divRadPoly | divintRad |
| Polynomial | Frac2Rad+divRadPoly | divRadPoly | Not implemented | divintPoly |
| int | int2Frac+divFrac | divintRad | divintPoly | / |
| power | Fraction | Radical | Polynomial | int |
|---|---|---|---|---|
| int | powFrac | powRad | Not implemented | qpow_frac |
P.S.: Radical类型还有一个squareRad专门用于平方,比powRad效率高。
P.S.: The Radical type also has a squareRad specialized for calculating squares, which performs better than powRad.
| sqrt | Fraction | Radical | Polynomial | int |
|---|---|---|---|---|
| sqrtFrac | N/A | N/A | Radsqrt |