-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the Steppable wiki!
We found that there is no better nor simpler method of writing a step-by-step solver than imitating how a human would solve it. So we wrote a parser that converts the input into a tree, and then we wrote a calculator that solves the tree step by step. Finally, the reporter shows the steps and results to the user in a human-readable format.
Currently, only the calculator and the reporter are implemented, with very limited functionality. Here is a list of what we are planning to implement next (and in the near future):
- Parser
- Calculator and reporter (all the major functions)
- Comparison of integers and decimal
- Addition of integers and decimals
- Subtraction of integers and decimals
- Multiplication of integers and decimals
- Powers of integers
- Division of integers and decimals
- Addition of fractions
- Subtraction of fractions
- Multiplication of fractions
- Simplification of fractions
- Division of fractions
- API for numbers
- API for fractions
- Conversion between fractions and decimals
- Expansion of polynomials
- Factoring of polynomials
The parser is the most difficult part of the project, so we will start with the calculator and reporter first. When implemented, it will probably call the calculator(s) (which is/are compiled into executable format together with the reporter) and then show the result to the user.
This project attempts to make a CAS that solves problems like a human does. It even adds, subtracts, multiplies, and divides using the column method. This is because we believe that a CAS should be able to solve problems step by step, so that the user can understand how the problem is solved.
This is not a CAS intended for high-performance computing. This is because the basic arithmetic operations are much more time-consuming than the plain old +
, -
, *
, and /
(around 10 times slower). The amount of coding needed for high-performance computing would take a considerable amount of time to design, program and debug. We may try it after we this CAS is fully functional.
Out of this list, we could not find a CAS that is:
- Free and open source
- Solves step by step
- Runs even without internet connection
- Has no external dependencies (including BigNum libraries)
Welcome to our project! We are glad that you are interested in contributing to our project. Please make a pull request in order to contribute to the project, and we will review it as soon as possible. But most importantly above all, we hope you will enjoy using this project and have fun coding !
Please expect the project to be functional before 2028.
Copyright (C) Andy Zhang, 2023-2024. Licensed under the MIT License.
- Getting the Source - Cloning the repository to your local machine
- Build the Project (CMake) - Compiling the source code of Steppable using CMake
- Build the Project (build.py) - Compiling the source code of Steppable using build.py
- Workflow - How to contribute to this repository
- Coding Style (Python) - Style guidelines for Python code in this project
- Coding Style (C++) - Style guidelines for CPP code in this project
- Directory Structure - The directory structure used by this project.
- Using the API - How to use the Steppable API
- Supported Platforms
- Performance - Some benchmarks of Steppable for reference
- Status - Status of Steppable, at a glance