Compare commits
46 Commits
omega-beta
...
O1.21.0-E1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9eff895a95 | ||
|
|
6e7cf88e3f | ||
|
|
ba6ee3f1b9 | ||
|
|
41554caf27 | ||
|
|
0a807c3b69 | ||
|
|
73017819ac | ||
|
|
d0e0ee610c | ||
|
|
a540ef8153 | ||
|
|
a77028a36b | ||
|
|
0250ad8520 | ||
|
|
fcc803d7c5 | ||
|
|
d83e712256 | ||
|
|
6f3cb70f64 | ||
|
|
77ec00bc50 | ||
|
|
085c90353d | ||
|
|
b09da48748 | ||
|
|
ef3682b904 | ||
|
|
135a56b6b3 | ||
|
|
f6c9bb23c6 | ||
|
|
17284985f7 | ||
|
|
76e1bf8822 | ||
|
|
540c87c71f | ||
|
|
391904900a | ||
|
|
763ce87d14 | ||
|
|
a60d47bd2e | ||
|
|
875b7b3734 | ||
|
|
9773c09eba | ||
|
|
fda0848036 | ||
|
|
7733378bdc | ||
|
|
3e3a6347a6 | ||
|
|
3227e7ca8a | ||
|
|
51ef7d7404 | ||
|
|
da3c4a48d0 | ||
|
|
ec0e72fcb8 | ||
|
|
8a45b3d552 | ||
|
|
d35e93901c | ||
|
|
8f380adc4f | ||
|
|
61a015b6f1 | ||
|
|
66ea24584c | ||
|
|
f052ad7bf8 | ||
|
|
116cbf7df4 | ||
|
|
46658f7077 | ||
|
|
0235de8010 | ||
|
|
636c5c1d24 | ||
|
|
4af76cc3ae | ||
|
|
668bc95f15 |
21
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -2,13 +2,26 @@
|
||||
name: Bug report
|
||||
about: Omega is not working like it should? Let us know!
|
||||
title: ''
|
||||
labels: Bug, Triage
|
||||
labels: 'Status: Triage, Type: Bug'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
#### Describe the bug
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
#### Environment
|
||||
- Omega Version: {go to settings > about > Omega Version and type the version here}
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- Omega Version: [go to settings > about > Omega Version and type the version here]
|
||||
|
||||
1
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1 +0,0 @@
|
||||
blank_issues_enabled: false
|
||||
13
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,10 +1,17 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for an improvement of Omega
|
||||
about: Suggest an idea for Omega
|
||||
title: ''
|
||||
labels: Feature, Triage
|
||||
labels: 'Status: Triage, Type: Feature'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
#### What I want to see in the next version of Omega
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
|
||||
28
.github/ISSUE_TEMPLATE/omega-beta-only---bug-report.md
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: OMEGA BETA ONLY - Bug report
|
||||
about: Omega 1.21 is not working like it should? Let us know!
|
||||
title: "[BETA-1.21] …"
|
||||
labels: 'Status: Triage, Type: Bug'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- Omega Version: [go to settings > about > Omega Version and type the version here]
|
||||
- Discord username: ..........#....
|
||||
4
.github/ISSUE_TEMPLATE/other.md
vendored
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: Other
|
||||
about: A question? A problem? ...
|
||||
about: A question? A problem? …
|
||||
title: ''
|
||||
labels: Triage
|
||||
labels: 'Status: Triage'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
@@ -2,18 +2,18 @@
|
||||
name: Problems during installation
|
||||
about: Need help to install Omega?
|
||||
title: ''
|
||||
labels: Installation issue, Triage
|
||||
labels: 'Status: Triage, Type: Installation issue'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
#### Describe the problem
|
||||
**Describe the problem**
|
||||
|
||||
|
||||
#### Logs
|
||||
**Logs**
|
||||
```
|
||||
Copy/paste the logs here (If you have some)
|
||||
```
|
||||
|
||||
#### Environment
|
||||
**Environment**
|
||||
- Omega Version: {go to settings > about > Omega Version and type the version here}
|
||||
|
||||
80
.github/workflows/ci-workflow.yml
vendored
@@ -1,6 +1,7 @@
|
||||
name: Continuous integration
|
||||
#on: [pull_request, push]
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
@@ -12,32 +13,42 @@ on:
|
||||
description: 'Run macOS tests'
|
||||
required: true
|
||||
default: 'no'
|
||||
trigger3DS:
|
||||
description: 'Run 3DS tests'
|
||||
required: true
|
||||
default: 'no'
|
||||
|
||||
jobs:
|
||||
# nintendo_3ds:
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - run: wget https://github.com/devkitPro/pacman/releases/download/v1.0.2/devkitpro-pacman.amd64.deb -O /tmp/devkitpro-pacman.deb
|
||||
# - run: yes | sudo dpkg -i /tmp/devkitpro-pacman.deb
|
||||
# - run: yes | sudo dkp-pacman -Syu --needed devkitARM 3dstools libctru
|
||||
# - run: echo ::set-env name=DEVKITPRO::/opt/devkitpro
|
||||
# - run: echo ::set-env name=DEVKITARM::/opt/devkitpro/devkitARM
|
||||
# - run: echo ::set-env name=PATH::$DEVKITPRO/tools/bin:$DEVKITARM/bin:$PATH
|
||||
|
||||
# - uses: actions/checkout@v1
|
||||
# with:
|
||||
# submodules: true
|
||||
# - run: make -j2 PLATFORM=simulator TARGET=3ds
|
||||
# - uses: actions/upload-artifact@master
|
||||
# with:
|
||||
# name: epsilon-3ds.3dsx
|
||||
# path: output/release/simulator/3ds/epsilon.3dsx
|
||||
android:
|
||||
nintendo_3ds:
|
||||
if: github.event.inputs.trigger3DS == 'yes'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: wget https://github.com/devkitPro/pacman/releases/download/v1.0.2/devkitpro-pacman.amd64.deb -O /tmp/devkitpro-pacman.deb
|
||||
- run: yes | sudo dpkg -i /tmp/devkitpro-pacman.deb
|
||||
- run: yes | sudo dkp-pacman -Syu --needed devkitARM 3dstools libctru
|
||||
- run: echo ::set-env name=DEVKITPRO::/opt/devkitpro
|
||||
- run: echo ::set-env name=DEVKITARM::/opt/devkitpro/devkitARM
|
||||
- run: echo ::set-env name=PATH::$DEVKITPRO/tools/bin:$DEVKITARM/bin:$PATH
|
||||
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
submodules: true
|
||||
- run: make -j2 PLATFORM=simulator TARGET=3ds
|
||||
- run: make -j2 PLATFORM=simulator TARGET=3ds epsilon.cia
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-3ds.3dsx
|
||||
path: output/release/simulator/3ds/epsilon.3dsx
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-3ds.cia
|
||||
path: output/release/simulator/3ds/epsilon.cia
|
||||
android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator TARGET=android
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
@@ -48,9 +59,9 @@ jobs:
|
||||
steps:
|
||||
- run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config
|
||||
- uses: numworks/setup-arm-toolchain@2020-q2
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
submodules: 'recursive'
|
||||
- run: mkdir final-output
|
||||
- run: make -j2 MODEL=n0100 EPSILON_I18N=en output/release/device/n0100/epsilon.onboarding.two_binaries
|
||||
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.internal.en.bin
|
||||
@@ -89,9 +100,9 @@ jobs:
|
||||
steps:
|
||||
- run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config
|
||||
- uses: numworks/setup-arm-toolchain@2020-q2
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 epsilon.dfu
|
||||
- run: make -j2 epsilon.onboarding.dfu
|
||||
- run: make -j2 epsilon.onboarding.update.dfu
|
||||
@@ -114,11 +125,10 @@ jobs:
|
||||
steps:
|
||||
- uses: msys2/setup-msys2@v2
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: pacman -S --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-freetype mingw-w64-x86_64-pkg-config make mingw-w64-x86_64-python3 mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-libpng
|
||||
- run: make -j2 PLATFORM=simulator
|
||||
- run: make -j2 PLATFORM=simulator epsilon.official.exe
|
||||
- run: make -j2 PLATFORM=simulator test.headless.exe
|
||||
- run: output/release/simulator/windows/test.headless.exe
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-windows.exe
|
||||
@@ -129,9 +139,9 @@ jobs:
|
||||
- uses: numworks/setup-emscripten@v1
|
||||
with:
|
||||
sdk: latest-upstream
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator TARGET=web
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
@@ -141,25 +151,23 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-linux.bin
|
||||
path: output/release/simulator/linux/epsilon.bin
|
||||
- run: make -j2 PLATFORM=simulator test.headless.bin
|
||||
macos:
|
||||
if: github.event.inputs.triggerMacos == 'yes'
|
||||
runs-on: macOS-latest
|
||||
steps:
|
||||
- run: brew install numworks/tap/epsilon-sdk
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator
|
||||
- run: make -j2 PLATFORM=simulator epsilon.official.app
|
||||
- run: make -j2 PLATFORM=simulator ARCH=x86_64 test.headless.bin
|
||||
- run: output/release/simulator/macos/x86_64/test.headless.bin
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: epsilon-macos.zip
|
||||
@@ -170,9 +178,9 @@ jobs:
|
||||
steps:
|
||||
- run: brew install numworks/tap/epsilon-sdk
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0
|
||||
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 epsilon.official.ipa
|
||||
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 test.ipa
|
||||
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 APPLE_PLATFORM=ios-simulator
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
|
||||
14
.github/workflows/unit-workflow.yml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
name: Unit tests
|
||||
on: [pull_request_target]
|
||||
|
||||
jobs:
|
||||
units:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- run: make -j2 PLATFORM=simulator test.headless.bin
|
||||
- run: output/release/simulator/linux/test.headless.bin
|
||||
|
||||
177
README.fr.md
Normal file
@@ -0,0 +1,177 @@
|
||||
<p align="center"><img src="https://user-images.githubusercontent.com/12123721/109067616-08b0d500-76ef-11eb-9e23-78f40c335c18.png" /></p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="cc by-nc-sa 4.0" src="https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-525252.svg?labelColor=292929&logo=creative%20commons&style=for-the-badge" /></a>
|
||||
<a href="https://github.com/Omega-Numworks/Omega/issues"><img alt="Issues" src="https://img.shields.io/github/issues/Omega-Numworks/Omega.svg?labelColor=292929&logo=git&style=for-the-badge" /></a>
|
||||
<br/>
|
||||
<a href="https://discord.gg/X2TWhh9"><img alt="Discord" src="https://img.shields.io/discord/663420259851567114?color=blue&labelColor=292929&label=chat%20-%20discord&logo=discord&style=for-the-badge" /></a>
|
||||
</p>
|
||||
|
||||
> Don't understand french ? speak english ? here's the [english README](./README.md) !
|
||||
|
||||
## À propos
|
||||
|
||||
Omega est un fork d'Epsilon, l'OS de Numworks tournant sur les calculatrices du même nom, qui apporte beaucoup de fonctionnalités en plus. Omega est fait pour ceux qui aimeraient ajouter certaines fonctionnalités ayant été rejetées par Numworks à leurs calculatrices (pour des raisons 100% compréhensibles !). [Essayez en ligne](https://getomega.web.app/simulator).
|
||||
|
||||
### Quelques fonctionnalités supplémentaires
|
||||
- Retour du calcul littéral
|
||||
- Une application RPN
|
||||
- Application Externes
|
||||
- Des thèmes
|
||||
- Python amélioré (module os, méthode open...)
|
||||
- Un tableau périodique et toutes les masses molaires des éléments dans la toolbox
|
||||
- *Ainsi que d'autres à découvrir...* [Changelogs complets](https://github.com/Omega-Numworks/Omega/wiki/Changelog) | [Fonctionnalités princpales & captures d'écran](https://github.com/Omega-Numworks/Omega/wiki/Main-features).
|
||||
|
||||
## Installation
|
||||
|
||||
### Automatique
|
||||
|
||||
Vous pouvez installer Omega automatiquement depuis [notre site](https://getomega.web.app/) sur la page "installer".
|
||||
|
||||
<a href="https://getomega.web.app"><p align="center"><img alt="Omega Banner Discord" src="https://user-images.githubusercontent.com/12123721/86352956-e9000480-bc66-11ea-82b7-79fd7e56fa27.png" /></p></a>
|
||||
|
||||
### Manuelle
|
||||
|
||||
Tout d'abord, suivez **la première étape** [ici](https://www.numworks.com/resources/engineering/software/build/), puis :
|
||||
|
||||
<details>
|
||||
<summary><b>Modèle n0100</b></summary>
|
||||
|
||||
(note : vous pouvez changer `EPSILON_I18N=fr` en `en`, `nl`, `pt`, `it`, `de`, `es` ou `hu`).
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout omega-master
|
||||
make MODEL=n0100 clean
|
||||
make MODEL=n0100 EPSILON_I18N=fr OMEGA_USERNAME="{Votre nom ici, 15 caractères max}" -j4
|
||||
make MODEL=n0100 epsilon_flash
|
||||
```
|
||||
|
||||
Important : N'oubliez pas l'argument `--recursive`, Omega a besoin de sous-modules.
|
||||
Vous pouvez aussi changer le nombre de processus parallèles pendant la compilation en changeant la valeur suivant `-j`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Modèle n0110</b></summary>
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout omega-master
|
||||
make clean
|
||||
make OMEGA_USERNAME="{Votre nom ici, 15 caractères max}" -j4
|
||||
make epsilon_flash
|
||||
```
|
||||
|
||||
Important : N'oubliez pas l'argument `--recursive`, Omega a besoin de sous-modules.
|
||||
Vous pouvez aussi changer le nombre de processus parallèles pendant la compilation en changeant la valeur suivant `-j`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Fichiers binaires</b></summary>
|
||||
|
||||
Ces fichiers peuvent être utilisés pour distribuer Omega (pour que tout le monde puisse le flasher via [Webdfu_Numworks](https://ti-planet.github.io/webdfu_numworks/)).
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout omega-master
|
||||
make clean
|
||||
make MODEL=n0100 OMEGA_USERNAME="" -j8
|
||||
make MODEL=n0100 OMEGA_USERNAME="" binpack -j8
|
||||
make OMEGA_USERNAME="" -j8
|
||||
make OMEGA_USERNAME="" binpack -j8
|
||||
```
|
||||
|
||||
Important : N'oubliez pas l'argument `--recursive`, Omega a besoin de sous-modules.
|
||||
Vous pouvez aussi changer le nombre de processus parallèles pendant la compilation en changeant la valeur suivant `-j`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Simulateur web</b></summary>
|
||||
|
||||
D'abord, installez emsdk :
|
||||
|
||||
```bash
|
||||
git clone https://github.com/emscripten-core/emsdk.git
|
||||
cd emsdk
|
||||
./emsdk install latest-fastcomp
|
||||
./emsdk activate latest-fastcomp
|
||||
source emsdk_env.sh
|
||||
```
|
||||
|
||||
Puis, compilez Omega :
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout omega-master
|
||||
make clean
|
||||
make PLATFORM=simulator TARGET=web OMEGA_USERNAME="{Votre nom ici, 15 caractères max}" -j4
|
||||
```
|
||||
|
||||
Le simulateur se trouve dans `output/release/simulator/web/simulator.zip`
|
||||
|
||||
Important : N'oubliez pas l'argument `--recursive`, Omega a besoin de sous-modules.
|
||||
Vous pouvez aussi changer le nombre de processus parallèles pendant la compilation en changeant la valeur suivant `-j`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Simulateur 3DS</b></summary>
|
||||
|
||||
Vous aurez besoin de devkitPro et de devkitARM disponible dans votre `$PATH` (instructions [ici](https://devkitpro.org/wiki/Getting_Started) (en anglais))
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/Omega-Numworks/Omega.git
|
||||
cd Omega
|
||||
git checkout --recursive omega-dev
|
||||
make PLATFORM=simulator TARGET=3ds -j
|
||||
```
|
||||
|
||||
Vous pouvez ensuite copier epsilon.3dsx sur une carte SD pour l'exécuter depuis le HBC ou utiliser 3dslink pour le lancer via le réseau :
|
||||
|
||||
```bash
|
||||
3dslink output/release/simulator/3ds/epsilon.3dsx -a <ADRESSE IP 3DS>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
Si vous avez besoin d'aide, n'hésitez pas à rejoindre notre serveur discord : https://discord.gg/X2TWhh9
|
||||
|
||||
<a href="https://discord.gg/X2TWhh9"><p align="center"><img alt="Omega Banner Discord" src="https://user-images.githubusercontent.com/12123721/86287349-54ef5800-bbe8-11ea-80c1-34eb1f93eebd.png" /></p></a>
|
||||
---
|
||||
|
||||
## Contribution
|
||||
|
||||
Pour contribuer, merci de lire le [Wiki](https://github.com/Omega-Numworks/Omega/wiki/Contributing)
|
||||
|
||||
## Nos autres projets
|
||||
|
||||
* [Omega Themes](https://github.com/Omega-Numworks/Omega-Themes)
|
||||
* [Omega Website](https://github.com/Omega-Numworks/Omega-Website)
|
||||
* [Omega RPN `APP`](https://github.com/Omega-Numworks/Omega-RPN)
|
||||
* [Omega Atom `APP`](https://github.com/Omega-Numworks/Omega-Atom)
|
||||
* [Omega Design](https://github.com/Omega-Numworks/Omega-Design)
|
||||
* [Omega Discord Bot](https://github.com/Omega-Numworks/Omega-Discord-Bot)
|
||||
* [Omega App Template `BETA`](https://github.com/Omega-Numworks/Omega-App-Template)
|
||||
* [External Apps](https://github.com/Omega-Numworks/External-Apps)
|
||||
|
||||
## À propos d'Epsilon
|
||||
|
||||
Omega est un fork d'Epsilon, un système d'exploitation performant pour calculatrices graphiques. Il inclut huit applications pour les mathématiques de lycée et d'études supérieurs
|
||||
|
||||
Vous pouvez essayer Epsilon depuis votre navigateur sur le [simulateur en ligne](https://www.numworks.com/simulator/).
|
||||
|
||||
## Licence
|
||||
|
||||
NumWorks est une marque déposée de NumWorks SAS, 24 Rue Godot de Mauroy, 75009 Paris, France.
|
||||
Nintendo est Nintendo 3DS sont des marques déposées de Nintendo of America Inc, 4600 150th Ave NE, Redmond, WA 98052, Etats-Unis.
|
||||
NumWorks SAS et Nintendo of America Inc ne sont en aucun cas associés avec ce projet.
|
||||
|
||||
* NumWorks Epsilon est disponible sous [Lisense CC BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode).
|
||||
* Omega est disponible sous [Lisense CC BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode).
|
||||
@@ -1,4 +1,4 @@
|
||||
<p align="center"><img src="https://github.com/Omega-Numworks/Omega-Design/blob/master/Banners/Omega-Banner-Dev-Branch.png?raw=true" /></p>
|
||||
<p align="center"><img src="https://user-images.githubusercontent.com/12123721/109067616-08b0d500-76ef-11eb-9e23-78f40c335c18.png" /></p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="cc by-nc-sa 4.0" src="https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-525252.svg?labelColor=292929&logo=creative%20commons&style=for-the-badge" /></a>
|
||||
@@ -7,6 +7,8 @@
|
||||
<a href="https://discord.gg/X2TWhh9"><img alt="Discord" src="https://img.shields.io/discord/663420259851567114?color=blue&labelColor=292929&label=chat%20-%20discord&logo=discord&style=for-the-badge" /></a>
|
||||
</p>
|
||||
|
||||
> Vous ne comprenez pas l'anglais ? vous êtes francophone ? Regardez le [*LISEZ-MOI* français](./README.fr.md) !
|
||||
|
||||
## About
|
||||
|
||||
Omega is a fork of Numworks' Epsilon, the OS that runs on their calculator, which brings many features to it. Omega is for the people who want to add features to the calculator, but cannot because they have been rejected by Numworks (for reasons that are 100% understandable!). [Try it online](https://getomega.web.app/simulator).
|
||||
|
||||
@@ -11,6 +11,25 @@ apps =
|
||||
# (path to the apps header).
|
||||
$(foreach i,${apps_list},${eval include apps/$(i)/Makefile})
|
||||
|
||||
app_equals = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1)))
|
||||
# We list all the apps that are missing
|
||||
apps_missing = $(foreach i, ${apps_list}, $(if $(call app_equals, apps/$(i)/Makefile, $(wildcard apps/$(i)/Makefile)),, $(i) ) )
|
||||
|
||||
# If the two doesn't match, we got an error.
|
||||
ifneq ($(strip $(apps_missing)),)
|
||||
miss_modules = 0
|
||||
|
||||
# Check if the missing apps are one that are supposed to be submodules
|
||||
$(foreach i, $(SUBMODULES_APPS), $(if $(call app_equals, $(filter $(i), $(apps_missing)), $(i)), $(eval miss_modules=1)))
|
||||
|
||||
ifeq ($(miss_modules), 1)
|
||||
PLS_IGNORE := $(shell >&2 printf "\nSome submodules apps seem to be missing. To download them, assumming you git clone'd the repo, do\n")
|
||||
PLS_IGNORE := $(shell >&2 printf " git submodule init\n")
|
||||
PLS_IGNORE := $(shell >&2 printf " git submodule update\n\n")
|
||||
endif
|
||||
$(error Missing apps: $(strip $(apps_missing)))
|
||||
endif
|
||||
|
||||
apps_src += $(addprefix apps/,\
|
||||
alternate_empty_nested_menu_controller.cpp \
|
||||
apps_container.cpp \
|
||||
@@ -43,7 +62,7 @@ apps_src += $(addprefix apps/,\
|
||||
)
|
||||
|
||||
tests_src += $(addprefix apps/,\
|
||||
exam_mode_configuration_official.cpp \
|
||||
exam_mode_configuration_non_official.cpp \
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ bool AppsContainer::dispatchEvent(Ion::Events::Event event) {
|
||||
}
|
||||
if (changedZoom) {
|
||||
KDIonContext::sharedContext()->updatePostProcessingEffects();
|
||||
redrawWindow();
|
||||
redrawWindow(true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,4 @@ AdditionalDeterminant = "Determinant"
|
||||
AdditionalInverse = "Inverse"
|
||||
AdditionalRowEchelonForm = "Row echelon form"
|
||||
AdditionalReducedRowEchelonForm = "Reduced row echelon form"
|
||||
AdditionalTrace = "Trace"
|
||||
AdditionalTrace = "Trace"
|
||||
|
||||
@@ -3,7 +3,12 @@ CalculAppCapital = "SZÁMOLÁS"
|
||||
AdditionalResults = "További eredmények"
|
||||
DecimalBase = "Decimális"
|
||||
HexadecimalBase = "Hexadecimális"
|
||||
BinaryBase = "Kétkomponensü"
|
||||
BinaryBase = "Bináris"
|
||||
PrimeFactors = "Alapvetö tényezök"
|
||||
MixedFraction = "Vegyes frakció"
|
||||
EuclideanDivision = "Euklideszi osztás"
|
||||
AdditionalDeterminant = "Meghatározó"
|
||||
AdditionalInverse = "inverz"
|
||||
AdditionalRowEchelonForm = "Sor echelon forma"
|
||||
AdditionalReducedRowEchelonForm = "Csökkentett sorú Echelon forma"
|
||||
AdditionalTrace = "Nyomkövetés"
|
||||
|
||||
@@ -114,10 +114,10 @@ QUIZ_CASE(calculation_display_exact_approximate) {
|
||||
|
||||
assertCalculationIs("1/2", DisplayOutput::ExactAndApproximate, EqualSign::Equal, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("1/3", DisplayOutput::ExactAndApproximate, EqualSign::Approximation, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("1/0", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("2x-x", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("1/0", DisplayOutput::ExactOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("2x-x", DisplayOutput::ExactOnly, EqualSign::Unknown, "x", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("[[1,2,3]]", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("[[1,x,3]]", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("[[1,x,3]]", DisplayOutput::ExactAndApproximate, EqualSign::Unknown, nullptr, "[[1,undef,3]]", "[[1,undef,3]]", &globalContext, &store);
|
||||
assertCalculationIs("28^7", DisplayOutput::ExactAndApproximate, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("3+√(2)→a", DisplayOutput::ExactAndApproximate, EqualSign::Approximation, "√(2)+3", nullptr, nullptr, &globalContext, &store);
|
||||
Ion::Storage::sharedStorage()->recordNamed("a.exp").destroy();
|
||||
@@ -130,9 +130,9 @@ QUIZ_CASE(calculation_display_exact_approximate) {
|
||||
assertCalculationIs("1+1+random()", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("1+1+round(1.343,2)", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, "3.34", "3.34", &globalContext, &store);
|
||||
assertCalculationIs("randint(2,2)+3", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "5", "5", "5", &globalContext, &store);
|
||||
assertCalculationIs("confidence(0.5,2)+3", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("prediction(0.5,2)+3", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("prediction95(0.5,2)+3", DisplayOutput::ApproximateOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("confidence(0.5,2)+3", DisplayOutput::ExactOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("prediction(0.5,2)+3", DisplayOutput::ExactOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("prediction95(0.5,2)+3", DisplayOutput::ExactOnly, EqualSign::Unknown, nullptr, nullptr, nullptr, &globalContext, &store);
|
||||
|
||||
}
|
||||
|
||||
@@ -140,10 +140,10 @@ QUIZ_CASE(calculation_symbolic_computation) {
|
||||
Shared::GlobalContext globalContext;
|
||||
CalculationStore store(calculationBuffer,calculationBufferSize);
|
||||
|
||||
assertCalculationIs("x+x+1+3+√(π)", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("x+x+1+3+√(π)", DisplayOutput::ExactOnly, EqualSign::Unknown, "2×x+√(π)+4", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ExactOnly, EqualSign::Unknown, "f×x", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("1+x→f(x)", DisplayOutput::ExactOnly, EqualSign::Unknown, "x+1", nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ApproximateOnly, EqualSign::Unknown, "undef", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ExactOnly, EqualSign::Unknown, "x+1", "undef", "undef", &globalContext, &store);
|
||||
assertCalculationIs("f(2)", DisplayOutput::ApproximateOnly, EqualSign::Equal, "3", "3", "3", &globalContext, &store);
|
||||
assertCalculationIs("2→x", DisplayOutput::ApproximateOnly, EqualSign::Equal, "2", nullptr, nullptr, &globalContext, &store);
|
||||
assertCalculationIs("f(x)", DisplayOutput::ApproximateOnly, EqualSign::Equal, "3", nullptr, nullptr, &globalContext, &store);
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
AddScript = "Script hozzadáadása"
|
||||
AddScript = "Script hozzáadása"
|
||||
AllowedCharactersaz09 = "Engedélyezett karakterek: a-z, 0-9, _"
|
||||
Autocomplete = "Autocomplete"
|
||||
Autocomplete = "Önkiegészítés"
|
||||
AutoImportScript = "Script automata importálása"
|
||||
BuiltinsAndKeywords = "Builtins and keywords"
|
||||
BuiltinsAndKeywords = "Beépített fonkciók és szókincs"
|
||||
Console = "Konzol"
|
||||
DeleteScript = "Script törlése"
|
||||
DuplicateScript = "Script másolása"
|
||||
ExecuteScript = "Script indítása"
|
||||
FunctionsAndVariables = "Függvények és változók"
|
||||
ImportedModulesAndScripts = "Imported modules and scripts"
|
||||
NoWordAvailableHere = "No word available here."
|
||||
ScriptInProgress = "Script in progress"
|
||||
FunctionsAndVariables = "Fonktiók és változók"
|
||||
ImportedModulesAndScripts = "Importált scriptek és modulok"
|
||||
NoWordAvailableHere = "Nincs rendelkezésre álló szó."
|
||||
ScriptInProgress = "Script müködésben"
|
||||
ScriptOptions = "Script beállítások"
|
||||
ScriptSize = "Script size"
|
||||
ScriptSize = "Script mérete"
|
||||
|
||||
@@ -203,7 +203,7 @@ PythonOsRename = "Renomme oldname en newname"
|
||||
PythonOsListdir = "Liste les fichiers"
|
||||
PythonTimePrefix = "Préfixe fonction du module temps"
|
||||
PythonTimeSleep = "Attendre n secondes"
|
||||
PythonMonotonic = "Retourne le temps monotonic"
|
||||
PythonMonotonic = "Retourne le temps monotone"
|
||||
PythonFileOpen = "Ouvre un fichier"
|
||||
PythonFileSeekable = "Indique si seek peut être utilisé"
|
||||
PythonFileSeek = "Déplace le curseur interne"
|
||||
|
||||
@@ -1,222 +1,222 @@
|
||||
PythonPound = "Megjegyzés"
|
||||
PythonPercent = "Modulo"
|
||||
Python1J = "Képzeletbeli i"
|
||||
PythonLF = "Line feed"
|
||||
PythonLF = "Enter"
|
||||
PythonTab = "Táblázat"
|
||||
PythonAmpersand = "Bitwise és"
|
||||
PythonSymbolExp = "Bitwise exkluzív vagy"
|
||||
PythonVerticalBar = "Bitwise vagy"
|
||||
PythonAmpersand = "Logikus és"
|
||||
PythonSymbolExp = "logikus exkluzív vagy pedig"
|
||||
PythonVerticalBar = "logikus vagy pedig"
|
||||
PythonImag = "z képzeletbeli része"
|
||||
PythonReal = "z valódi része"
|
||||
PythonSingleQuote = "Egyetlen idézet"
|
||||
PythonAbs = "Abszolút érték / nagyság"
|
||||
PythonAcos = "Arc koszinusz"
|
||||
PythonAcosh = "Íves hiperbolikus koszinusz"
|
||||
PythonAppend = "x hozzáadása a lista végéhez"
|
||||
PythonArrow = "Arrow from (x,y) to (x+dx,y+dy)"
|
||||
PythonAsin = "Arc szinusz"
|
||||
PythonAsinh = "Íves hiperbolikus szinusz"
|
||||
PythonAtan = "Arc érintö"
|
||||
PythonAtan2 = "Visszatérés atan (y / x)"
|
||||
PythonAtanh = "Arc hiperbolikus érintö"
|
||||
PythonAxis = "Set axes to (xmin,xmax,ymin,ymax)"
|
||||
PythonBar = "Draw a bar plot with x values"
|
||||
PythonSingleQuote = "apostróf"
|
||||
PythonAbs = "Abszolút érték/nagyság"
|
||||
PythonAcos = "Ív (arc) koszinusz"
|
||||
PythonAcosh = "Hiperbolikus arc koszinusz"
|
||||
PythonAppend = "Lista végére hozzáadni x-et"
|
||||
PythonArrow = "(x,y) nyíla (x+dx,y+dy) nyílához"
|
||||
PythonAsin = "Ív (arc) szinusz"
|
||||
PythonAsinh = "Hiperbolikus ív (arc) szinusz"
|
||||
PythonAtan = "Ív (arc) érintö (tan)"
|
||||
PythonAtan2 = "atan(y/x) sámolása"
|
||||
PythonAtanh = "Hiperbolikus ív (arc) érintö (atan)"
|
||||
PythonAxis = "Tengelyeket (xmin,xmax,ymin,ymax)-ra állitani"
|
||||
PythonBar = "Az x lista oszlopdiagramja"
|
||||
PythonBin = "Egész szám konvertálása binárisra"
|
||||
PythonCeil = "Mennyezet"
|
||||
PythonChoice = "Véletlenszerü szám a listában"
|
||||
PythonClear = "A lista ürítése"
|
||||
PythonCmathFunction = "cmath modul funkció elötag"
|
||||
PythonColor = "Rgb szín meghatározása"
|
||||
PythonColor = "Rgb (pzk) szín allítása"
|
||||
PythonColorBlack = "Fekete szín"
|
||||
PythonColorBlue = "Kék szín"
|
||||
PythonColorBrown = "Barna szín"
|
||||
PythonColorGreen = "Zöld szín"
|
||||
PythonColorGrey = "Szürke szín"
|
||||
PythonColorGray = "Szürke szín"
|
||||
PythonColorOrange = "Narancssárga szín"
|
||||
PythonColorPink = "Rózsaszín szín"
|
||||
PythonColorPurple = "Lila szín"
|
||||
PythonColorRed = "Piros szín"
|
||||
PythonColorWhite = "White color"
|
||||
PythonColorWhite = "Fehér szín"
|
||||
PythonColorYellow = "Sárga szín"
|
||||
PythonComplex = "A + ib visszaadása"
|
||||
PythonCopySign = "Visszatérés x-val y jelével"
|
||||
PythonCopySign = "X visszaadása y jelével"
|
||||
PythonCos = "Koszinusz"
|
||||
PythonCosh = "Hiperbolikus koszinusz"
|
||||
PythonCount = "Számolja az x elöfordulását"
|
||||
PythonDegrees = "x konvertálása x-röl radiánokra fokokra"
|
||||
PythonDegrees = "x konvertálása radiánokrol fokokra"
|
||||
PythonDivMod = "Hányados és maradék"
|
||||
PythonDrawString = "Szöveg megjelenítése pixelböl (x, y)"
|
||||
PythonDrawString = "Szöveg megjelenítése (x, y)-en"
|
||||
PythonErf = "Hiba funkció"
|
||||
PythonErfc = "Kiegészítö hibafunkció"
|
||||
PythonErfc = "Kiegészítö hiba funkció"
|
||||
PythonEval = "Visszaadja az értékelt kifejezést"
|
||||
PythonExp = "Exponenciális függvény"
|
||||
PythonExpm1 = "Számítsuk ki az exp (x) -1-et"
|
||||
PythonExpm1 = "exp(x)-1 sámitása"
|
||||
PythonFabs = "Abszolút érték"
|
||||
PythonFillRect = "Töltsön meg egy téglalapot pixelnél (x, y)"
|
||||
PythonFloat = "x konvertálása float-ra"
|
||||
PythonFloor = "Emelet"
|
||||
PythonFillRect = "Téglalap töltése"
|
||||
PythonFloat = "Konvertálása tizedes számra"
|
||||
PythonFloor = "Egész része"
|
||||
PythonFmod = "a modulo b"
|
||||
PythonFrExp = "Mantissa és az x exponense"
|
||||
PythonFrExp = "X mantissája és kiállítója"
|
||||
PythonGamma = "Gamma funkció"
|
||||
PythonGetPixel = "Visszatérési pixel (x, y) szín"
|
||||
PythonGetrandbits = "Egész szám k véletlen bittel"
|
||||
PythonGrid = "Toggle the visibility of the grid"
|
||||
PythonHex = "Egész szám konvertálása hexadecimálisra"
|
||||
PythonHist = "Draw the histogram of x"
|
||||
PythonGetPixel = "Visszatéríti (x,y) színét"
|
||||
PythonGetrandbits = "Váletlenszám visszatérítése k biten"
|
||||
PythonGrid = "Rács megjelenítése/elrejtése"
|
||||
PythonHex = "Decimális szám konvertálása hexadecimális számra"
|
||||
PythonHist = "x hisztográmiája"
|
||||
PythonImportCmath = "cmath modul importálása"
|
||||
PythonImportIon = "Ion modul importálása"
|
||||
PythonImportKandinsky = "Kandinsky modul importálása"
|
||||
PythonImportRandom = "Véletlenszerü modul importálása"
|
||||
PythonImportMath = "Import matematikai modul"
|
||||
PythonImportMatplotlibPyplot = "Import matplotlib.pyplot module"
|
||||
PythonImportTime = "Idömodul importálása"
|
||||
PythonImportOs = "Os modul importálása"
|
||||
PythonOsUname = "Információ a rendszerről"
|
||||
PythonOsRemove = "Fájl eltávolítása"
|
||||
PythonOsRename = "Fájl átnevezése"
|
||||
PythonOsListdir = "Fájlok listázása"
|
||||
PythonImportTurtle = "Import teknös modul"
|
||||
PythonImportMath = "math modul importálása"
|
||||
PythonImportMatplotlibPyplot = "matplotlib.pyplot modul importálása"
|
||||
PythonImportTurtle = "turtle modul importálása"
|
||||
PythonImportTime = "time modul importálása"
|
||||
PythonIndex = "Az elsö x esemény indexe"
|
||||
PythonInput = "Érték kérése"
|
||||
PythonInsert = "Helyezzen x-t az i indexbe a listában"
|
||||
PythonInt = "x konvertálása egész számra"
|
||||
PythonInput = "Irjon egy értéket (számot)"
|
||||
PythonInsert = "x-et i. pozícióra helyezze a listában"
|
||||
PythonInt = "egész számra konvertálás"
|
||||
PythonIonFunction = "ion modul funkció elötag"
|
||||
PythonIsFinite = "Ellenörizze, hogy x véges-e"
|
||||
PythonIsInfinite = "Ellenörizze, hogy x végtelen-e"
|
||||
PythonIsKeyDown = "True true, ha a k gomb le van nyomva"
|
||||
PythonIsNaN = "Ellenörizze, hogy x nem NaN"
|
||||
PythonKandinskyFunction = "kandinsky modul function prefix"
|
||||
PythonKeyLeft = "Balra nyíl gomb"
|
||||
PythonIsFinite = "x véges-e"
|
||||
PythonIsInfinite = "x végtelen-e"
|
||||
PythonIsKeyDown = "True-t válaszol ha a k gomb le van nyomva"
|
||||
PythonIsNaN = "Ellenörizze hogy x nem NaN"
|
||||
PythonKandinskyFunction = "kandinsky modul funkció elötag"
|
||||
PythonKeyLeft = "BAL NYÍL gomb"
|
||||
PythonKeyUp = "FEL NYÍL gomb"
|
||||
PythonKeyDown = "LE nyíl gomb"
|
||||
PythonKeyDown = "LE NYÍL gomb"
|
||||
PythonKeyRight = "JOBB NYÍL gomb"
|
||||
PythonKeyOk = "OK gomb"
|
||||
PythonKeyBack = "VISSZA kulcs"
|
||||
PythonKeyHome = "HOME kulcs"
|
||||
PythonKeyOnOff = "BE / KI gomb"
|
||||
PythonKeyShift = "SHIFT kulcs"
|
||||
PythonKeyAlpha = "ALPHA kulcs"
|
||||
PythonKeyXnt = "X, N, T kulcs"
|
||||
PythonKeyVar = "VAR kulcs"
|
||||
PythonKeyToolbox = "TOOLBOX kulcs"
|
||||
PythonKeyBackspace = "BACKSPACE kulcs"
|
||||
PythonKeyExp = "EXPONENTIAL kulcs"
|
||||
PythonKeyLn = "NATURAL LOGARITHM kulcs"
|
||||
PythonKeyLog = "DECIMAL LOGARITHM kulcs"
|
||||
PythonKeyImaginary = "IMAGINÁRIS I kulcs"
|
||||
PythonKeyComma = "COMMA kulcs"
|
||||
PythonKeyPower = "POWER kulcs"
|
||||
PythonKeySine = "SINE kulcs"
|
||||
PythonKeyCosine = "KOSZIN kulcs"
|
||||
PythonKeyTangent = "TANGENT kulcs"
|
||||
PythonKeyPi = "PI kulcs"
|
||||
PythonKeySqrt = "SQUARE ROOT kulcs"
|
||||
PythonKeySquare = "SQUARE kulcs"
|
||||
PythonKeySeven = "7 kulcs"
|
||||
PythonKeyEight = "8 kulcs"
|
||||
PythonKeyNine = "9 kulcs"
|
||||
PythonKeyLeftParenthesis = "Bal oldali PARENTHESIS kulcs"
|
||||
PythonKeyRightParenthesis = "JOGOS SZÜLETÉS kulcs"
|
||||
PythonKeyFour = "4 kulcs"
|
||||
PythonKeyFive = "5 kulcs"
|
||||
PythonKeySix = "6 kulcs"
|
||||
PythonKeyMultiplication = "TÖBB MüKÖDÉS kulcs"
|
||||
PythonKeyDivision = "DIVISION kulcs"
|
||||
PythonKeyOne = "1 kulcs"
|
||||
PythonKeyTwo = "2 kulcs"
|
||||
PythonKeyThree = "3 kulcs"
|
||||
PythonKeyPlus = "PLUS kulcs"
|
||||
PythonKeyMinus = "MINUS kulcs"
|
||||
PythonKeyZero = "0 kulcs"
|
||||
PythonKeyDot = "DOT kulcs"
|
||||
PythonKeyEe = "10 POWER X kulcs"
|
||||
PythonKeyAns = "ANS kulcs"
|
||||
PythonKeyExe = "EXE kulcs"
|
||||
PythonLdexp = "Visszatérés x * (2 ** i), inverz a frexp értékhez"
|
||||
PythonLength = "Objektum hossza"
|
||||
PythonLgamma = "Log-gamma funkció"
|
||||
PythonLog = "Logaritmus az alap"
|
||||
PythonLog10 = "Logaritmus az alaphoz 10"
|
||||
PythonLog2 = "Logaritmus az alaphoz 2"
|
||||
PythonMathFunction = "matematikai modul funkció elötag"
|
||||
PythonMatplotlibPyplotFunction = "matplotlib.pyplot module prefix"
|
||||
PythonKeyBack = "VISSZA gomb"
|
||||
PythonKeyHome = "HOME gomb"
|
||||
PythonKeyOnOff = "ON/OFF gomb"
|
||||
PythonKeyShift = "SHIFT gomb"
|
||||
PythonKeyAlpha = "ALPHA gomb"
|
||||
PythonKeyXnt = "X,N,T gomb"
|
||||
PythonKeyVar = "VAR gomb"
|
||||
PythonKeyToolbox = "TOOLBOX gomb"
|
||||
PythonKeyBackspace = "TÖRLÉS gomb"
|
||||
PythonKeyExp = "EXPONENCIÁLIS gomb"
|
||||
PythonKeyLn = "NEPERIAI LOGARITHM gomb"
|
||||
PythonKeyLog = "DECIMÁLIS LOGARITHM gomb"
|
||||
PythonKeyImaginary = "KÉPZELETBELI I gomb"
|
||||
PythonKeyComma = "VESSZÖ gomb"
|
||||
PythonKeyPower = "KIÁLLÍTÓ gomb"
|
||||
PythonKeySine = "SZINUSZ gomb"
|
||||
PythonKeyCosine = "KOSZINUSZ gomb"
|
||||
PythonKeyTangent = "TANGENS gomb"
|
||||
PythonKeyPi = "PI gomb"
|
||||
PythonKeySqrt = "NÉGYZETGYÖK gomb"
|
||||
PythonKeySquare = "NÉGYZET gomb"
|
||||
PythonKeySeven = "7 gomb"
|
||||
PythonKeyEight = "8 gomb"
|
||||
PythonKeyNine = "9 gomb"
|
||||
PythonKeyLeftParenthesis = "BAL ZÁRÓJEL gomb"
|
||||
PythonKeyRightParenthesis = "JOB ZÁRÓJEL gomb"
|
||||
PythonKeyFour = "4 gomb"
|
||||
PythonKeyFive = "5 gomb"
|
||||
PythonKeySix = "6 gomb"
|
||||
PythonKeyMultiplication = "SZOZÁS gomb"
|
||||
PythonKeyDivision = "OSZTÁS gomb"
|
||||
PythonKeyOne = "1 gomb"
|
||||
PythonKeyTwo = "2 gomb"
|
||||
PythonKeyThree = "3 gomb"
|
||||
PythonKeyPlus = "PLUS gomb"
|
||||
PythonKeyMinus = "MINUS gomb"
|
||||
PythonKeyZero = "0 gomb"
|
||||
PythonKeyDot = "PONT gomb"
|
||||
PythonKeyEe = "10 X KITEVÖ gomb"
|
||||
PythonKeyAns = "ANS gomb"
|
||||
PythonKeyExe = "EXE gomb"
|
||||
PythonLdexp = "frexp ellentéte : x*(2**i)"
|
||||
PythonLength = "Egy targy hossza"
|
||||
PythonLgamma = "Gamma funkció logaritmusa"
|
||||
PythonLog = "a alapú logaritmus"
|
||||
PythonLog10 = "Decimális logaritmus"
|
||||
PythonLog2 = "Bináris logaritmus"
|
||||
PythonMathFunction = "math modul funkció elötag"
|
||||
PythonMatplotlibPyplotFunction = "matplotlib.pyplot elötag"
|
||||
PythonMax = "Maximum"
|
||||
PythonMin = "Minimum"
|
||||
PythonModf = "Az x tört és egész részei"
|
||||
PythonMonotonic = "A monoton óra értéke"
|
||||
PythonOct = "Egész szám konvertálása oktális értékre"
|
||||
PythonPhase = "z fázis"
|
||||
PythonPlot = "Plot y versus x as lines"
|
||||
PythonPolar = "z poláris koordinátákban"
|
||||
PythonPop = "Az utolsó elem eltávolítása és visszaküldése"
|
||||
PythonPower = "x emelve az y teljesítményre"
|
||||
PythonPrint = "Objektum nyomtatása"
|
||||
PythonRadians = "x konvertálása x fokról radiánra"
|
||||
PythonRandint = "Véletlen egész szám [a, b] -ben"
|
||||
PythonRandom = "Lebegöpontos szám [0,1-ben ["
|
||||
PythonRandomFunction = "véletlenszerü modul funkció elötag"
|
||||
PythonRandrange = "Véletlen szám a tartományban (start, stop)"
|
||||
PythonRangeStartStop = "Lista az elejétöl a stop-1-ig"
|
||||
PythonRangeStop = "Lista 0-tól stop-1-ig"
|
||||
PythonRect = "z derékszögü koordinátákban"
|
||||
PythonRemove = "Távolítsa el az x elsö elöfordulását"
|
||||
PythonReverse = "A lista elemeinek megfordítása"
|
||||
PythonRound = "N számjegyre kerekítve"
|
||||
PythonScatter = "Draw a scatter plot of y versus x"
|
||||
PythonSeed = "Inicializálja a véletlenszám-generátort"
|
||||
PythonSetPixel = "Színes pixel (x, y)"
|
||||
PythonShow = "Display the figure"
|
||||
PythonSin = "Sine"
|
||||
PythonModf = "x-nek tört és egész részei"
|
||||
PythonMonotonic = "Az óra értékét adja vissza"
|
||||
PythonOct = "Decimális szám konvertálása octális számra"
|
||||
PythonPhase = "z fázisa"
|
||||
PythonPlot = "y-t jelöli x függvényében"
|
||||
PythonPolar = "Verctorizálni"
|
||||
PythonPop = "Az utolsó elemet el törölni"
|
||||
PythonPower = "x y. kitevö"
|
||||
PythonPrint = "Ki irni a elemeket"
|
||||
PythonRadians = "Fokról radiánra konvertálni"
|
||||
PythonRandint = "Véletlen egész szám [a;b] -ban"
|
||||
PythonRandom = "Decimális szám [0;1] -ban"
|
||||
PythonRandomFunction = "random modul funkció elötag"
|
||||
PythonRandrange = "Véletlen szám range(start,stop)-ban"
|
||||
PythonRangeStartStop = "start-tol stop-ig listája"
|
||||
PythonRangeStop = "0 tol stop-ig lista"
|
||||
PythonRect = "Algebrai számra konvertálni"
|
||||
PythonRemove = "Elsö x elöfordulását törolni"
|
||||
PythonReverse = "A lista elemeit megfordítani (másik irány)"
|
||||
PythonRound = "N számjegyre kerekítni"
|
||||
PythonScatter = "(x,y) halmaza"
|
||||
PythonSeed = "Inicializálni a véletlenszám-választót"
|
||||
PythonSetPixel = "Az (x,y) pixel-t ki szinezni"
|
||||
PythonShow = "Mutassa az ábrát"
|
||||
PythonSin = "Szinusz"
|
||||
PythonSinh = "Hiperbolikus szinusz"
|
||||
PythonSleep = "A végrehajtás felfüggesztése t másodpercre"
|
||||
PythonSort = "A lista rendezése"
|
||||
PythonSleep = "t másodpercre meg állitani a programmot"
|
||||
PythonSort = "A listát rendezni"
|
||||
PythonSqrt = "Négyzetgyök"
|
||||
PythonSum = "Összegzi a lista elemeit"
|
||||
PythonTan = "Érintö"
|
||||
PythonTanh = "Hiperbolikus érintö"
|
||||
PythonText = "Display a text at (x,y) coordinates"
|
||||
PythonTimeFunction = "idömodul funkció elötag"
|
||||
PythonTrunc = "x egészre csonkítva"
|
||||
PythonTurtleBackward = "Visszalépés x pixelrel"
|
||||
PythonTurtleCircle = "r pixel sugarú kör"
|
||||
PythonTurtleColor = "Állítsa be az toll színét"
|
||||
PythonTurtleColorMode = "Set the color mode to 1.0 or 255"
|
||||
PythonTurtleForward = "Ugrás x pixelrel"
|
||||
PythonTurtleFunction = "teknös modul funkció elötag"
|
||||
PythonTurtleGoto = "Mozgatás (x, y) koordinátákra"
|
||||
PythonTurtleHeading = "Visszaadja az aktuális címsort"
|
||||
PythonSum = "Összeadni a lista elemeit"
|
||||
PythonTan = "Érintö (tan)"
|
||||
PythonTanh = "Hiperbolikus érintö (tan)"
|
||||
PythonText = "(x,y) nél egy szöveget irni"
|
||||
PythonTimeFunction = "time funkció elötag"
|
||||
PythonTrunc = "Egész csonka (?)"
|
||||
PythonTurtleBackward = "x pixelt hátra"
|
||||
PythonTurtleCircle = "r pixel sugarú kört rajzolni"
|
||||
PythonTurtleColor = "Toll szinét beállitani"
|
||||
PythonTurtleColorMode = "Szin módot 1.0-ra vagy 255-ra állitani"
|
||||
PythonTurtleForward = "x pixelt elölre"
|
||||
PythonTurtleFunction = "turtle modul funkció elötag"
|
||||
PythonTurtleGoto = "Menjen a (x,y) koordinátákra"
|
||||
PythonTurtleHeading = "Visszaadja az aktuális irányt"
|
||||
PythonTurtleHideturtle = "A teknös elrejtése"
|
||||
PythonTurtleIsdown = "Visszatérés igazhoz, ha az toll lefelé"
|
||||
PythonTurtleLeft = "Forduljon fokkal balra"
|
||||
PythonTurtleIsdown = "True-t válaszol ha a toll irás pozícióban van"
|
||||
PythonTurtleLeft = "a fokkot forduljon balra"
|
||||
PythonTurtlePendown = "Húzza le a tollat"
|
||||
PythonTurtlePensize = "Állítsa a vonalvastagságot x pixelre"
|
||||
PythonTurtlePenup = "Húzza fel a tollat"
|
||||
PythonTurtlePosition = "Az aktuális (x, y) hely visszaadása"
|
||||
PythonTurtleReset = "A rajz visszaállítása"
|
||||
PythonTurtleRight = "Forduljon fokkal jobbra"
|
||||
PythonTurtleSetheading = "Állítsa be a tájolást fokokra"
|
||||
PythonTurtleSetposition = "A helymeghatározás"
|
||||
PythonTurtleShowturtle = "Mutasd a teknösöt"
|
||||
PythonTurtlePosition = "Az aktuális (x,y) pozíciót visszaadása"
|
||||
PythonTurtleReset = "Visszaállitani a rajzot (torléssel)"
|
||||
PythonTurtleRight = "a fokkot forduljon jobbra"
|
||||
PythonTurtleSetheading = "a fokokra állítja be az irányt"
|
||||
PythonTurtleSetposition = "A teknös pozicioját allitja"
|
||||
PythonTurtleShowturtle = "A teknöst meg mutatni"
|
||||
PythonTurtleSpeed = "Rajzolási sebesség 0 és 10 között"
|
||||
PythonTurtleWrite = "Display a text"
|
||||
PythonUniform = "Lebegöpontos szám [a, b] -ben"
|
||||
PythonImportTime = "Idömodul importálása"
|
||||
PythonTimePrefix = "idömodul funkció elötag"
|
||||
PythonTimeSleep = "Várj n másodpercet"
|
||||
PythonMonotonic = "Vissza a monoton idö"
|
||||
PythonTurtleWrite = "Szöveg irás"
|
||||
PythonUniform = "Lebegöpontos szám [a,b] -ban"
|
||||
PythonImportTime = "time modul importálása"
|
||||
PythonTimePrefix = "time funkció elötag"
|
||||
PythonTimeSleep = "n másodpercet várni"
|
||||
PythonMonotonic = "Meg fordítani a monoton idö"
|
||||
PythonFileOpen = "Fájl megnyitása"
|
||||
PythonFileSeekable = "A fájl kereshető?"
|
||||
PythonFileSeek = "A fájl kurzorának áthelyezése"
|
||||
PythonFileTell = "A fájl kurzorának helye"
|
||||
PythonFileClose = "Bezár egy fájlt"
|
||||
PythonFileClosed = "Igaz, ha a fájl bezárt"
|
||||
PythonFileRead = "Olvasson méretbájtig"
|
||||
PythonFileWrite = "B beírása fájlba"
|
||||
PythonFileReadline = "Olvas egy sort"
|
||||
PythonFileReadlines = "Olvassa a sorok listáját"
|
||||
PythonFileTruncate = "A fájl átméretezése méretre"
|
||||
PythonFileWritelines = "Sorok listáját írja"
|
||||
PythonFileName = "a fájl neve"
|
||||
PythonFileMode = "a fájl nyitott módja"
|
||||
PythonFileReadable = "A fájl olvasható?"
|
||||
PythonFileWritable = "A fájl írható?"
|
||||
PythonFileSeekable = "Seek-et lehete használni"
|
||||
PythonFileSeek = "A kurzort áthelyezni"
|
||||
PythonFileTell = "Visszaadja a kurzor helye"
|
||||
PythonFileClose = "Bezárni egy fájlt"
|
||||
PythonFileClosed = "True ha a fájl bezárva"
|
||||
PythonFileRead = "Olvas 16 bájtig"
|
||||
PythonFileWrite = "b-t irjon a fájlba"
|
||||
PythonFileReadline = "Olvas egy sort vagy 16 bájtig"
|
||||
PythonFileReadlines = "Olvas több sort"
|
||||
PythonFileTruncate = "A fájl átméretezése"
|
||||
PythonFileWritelines = "Irjon több sort"
|
||||
PythonFileName = "A fájl neve"
|
||||
PythonFileMode = "A fájl nyitott módja"
|
||||
PythonFileReadable = "read-et lehete használni"
|
||||
PythonFileWritable = "write-ot lehete használni"
|
||||
PythonImportOs = "os modul importálása"
|
||||
PythonOsUname = "Rendszer informaciók"
|
||||
PythonOsRemove = "Fájl törlése"
|
||||
PythonOsRename = "Fájl átnevezése"
|
||||
PythonOsListdir = "Fájlok listája"
|
||||
|
||||
4
apps/external/base.fr.i18n
vendored
@@ -1,7 +1,7 @@
|
||||
ExternalApp = "External"
|
||||
ExternalAppCapital = "EXTERNAL"
|
||||
ExternalAppApiMismatch = "API mismatch"
|
||||
ExternalAppExecError = "Cannot execute file"
|
||||
ExternalAppApiMismatch = "Décalage API"
|
||||
ExternalAppExecError = "Le fichier ne peut pas être exécuté"
|
||||
ExternalNotCompatible = "External n'est pas compatible"
|
||||
WithSimulator = "avec le simulateur"
|
||||
WithN0100 = "avec n0100"
|
||||
|
||||
10
apps/external/base.hu.i18n
vendored
@@ -1,9 +1,9 @@
|
||||
ExternalApp = "Külsö"
|
||||
ExternalAppCapital = "KÜLSö"
|
||||
ExternalAppCapital = "KÜLSÖ"
|
||||
ExternalAppApiMismatch = "API eltérés"
|
||||
ExternalAppExecError = "A fájl nem futtatható"
|
||||
ExternalNotCompatible = "Ez az alkalmazás nem kompatibilis a "
|
||||
ExternalNotCompatible = "Externál nem kompatibilis"
|
||||
WithSimulator = "Szimulátorral"
|
||||
WithN0100 = "a n0100-el"
|
||||
GetMoreAppsAt = "Mégtöbb alkalmazás a"
|
||||
NoAppsInstalled = "Nincs letöltött alkalmazás"
|
||||
WithN0100 = "n0100-al"
|
||||
GetMoreAppsAt = "Mégtöbb alkalmazás itt :"
|
||||
NoAppsInstalled = "Nincs letöltött externál"
|
||||
|
||||
@@ -13,21 +13,21 @@ IntervalX = "x intervallum"
|
||||
FunctionDomain = "Tervtartomány"
|
||||
FunctionColor = "Funkció színe"
|
||||
NoFunction = "Nincs funkció"
|
||||
NoActivatedFunction = "Nincs bekapcsolt funkció"
|
||||
PlotOptions = "Tervezési lehetöségek"
|
||||
Compute = "Számítás"
|
||||
NoActivatedFunction = "Nincs használt funkció"
|
||||
PlotOptions = "Görbe beállítások"
|
||||
Compute = "Kiszámolás"
|
||||
Zeros = "Nullák"
|
||||
Tangent = "Tangens"
|
||||
Intersection = "Keresztezés"
|
||||
Intersection = "Metszéspont"
|
||||
Preimage = "Inverz kép"
|
||||
SelectLowerBound = "Alsó határ kiválasztása"
|
||||
SelectUpperBound = "Felsö határ kiválasztása"
|
||||
NoMaximumFound = "Nem található maximális érték"
|
||||
NoMinimumFound = "Nem található minimum"
|
||||
NoZeroFound = "Nem található nulla"
|
||||
NoMaximumFound = "Nem talált maximum-ot"
|
||||
NoMinimumFound = "Nem talált minimum-ot"
|
||||
NoZeroFound = "Nem talált nullát"
|
||||
NoIntersectionFound = "Nem található keresztezödés"
|
||||
NoPreimageFound = "Nem található inverz kép"
|
||||
DerivativeFunctionColumn = "Származékos függvény oszlop"
|
||||
HideDerivativeColumn = "A derivatív függvény elrejtése"
|
||||
AllowedCharactersAZaz09 = "Engedélyezett karakterek: A-Z, a-z, 0-9, _"
|
||||
DerivativeFunctionColumn = "A derivált fügvény oszlopa"
|
||||
HideDerivativeColumn = "A derivált függvény oszlop elrejtése"
|
||||
AllowedCharactersAZaz09 = "Engedélyezett karakterek: A..Z, a..z, 0..9, _"
|
||||
ReservedName = "Fenntartott név"
|
||||
|
||||
@@ -33,9 +33,20 @@ void AppCell::layoutSubviews(bool force) {
|
||||
m_nameView.setFrame(KDRect((bounds().width()-nameSize.width())/2-k_nameWidthMargin, bounds().height()-nameSize.height() - 2*k_nameHeightMargin, nameSize.width()+2*k_nameWidthMargin, nameSize.height()+2*k_nameHeightMargin), force);
|
||||
}
|
||||
|
||||
void AppCell::setExtAppDescriptor(const char* name, const uint8_t *icon, size_t iconLength) {
|
||||
m_external_app = true;
|
||||
m_iconView.setImage(icon, iconLength);
|
||||
m_iconView.setImage(nullptr);
|
||||
m_nameView.setText(name);
|
||||
m_nameView.setTextColor(Palette::HomeCellTextExternal);
|
||||
m_nameView.setMessage(I18n::Message::Default);
|
||||
layoutSubviews();
|
||||
}
|
||||
|
||||
void AppCell::setExtAppDescriptor(const char* name, const Image* icon) {
|
||||
m_external_app = true;
|
||||
m_iconView.setImage(icon);
|
||||
m_iconView.setImage(nullptr, 0);
|
||||
m_nameView.setText(name);
|
||||
m_nameView.setTextColor(Palette::HomeCellTextExternal);
|
||||
m_nameView.setMessage(I18n::Message::Default);
|
||||
@@ -45,6 +56,7 @@ void AppCell::setExtAppDescriptor(const char* name, const Image* icon) {
|
||||
void AppCell::setAppDescriptor(::App::Descriptor * descriptor) {
|
||||
m_external_app = false;
|
||||
m_iconView.setImage(descriptor->icon());
|
||||
m_iconView.setImage(nullptr, 0);
|
||||
m_nameView.setMessage(descriptor->name());
|
||||
m_nameView.setTextColor(Palette::HomeCellText);
|
||||
m_nameView.setText(nullptr);
|
||||
|
||||
@@ -18,6 +18,7 @@ public:
|
||||
void reloadCell() override;
|
||||
void setAppDescriptor(::App::Descriptor * appDescriptor);
|
||||
void setExtAppDescriptor(const char* name, const Image* icon);
|
||||
void setExtAppDescriptor(const char* name, const uint8_t *icon, size_t iconLength);
|
||||
private:
|
||||
static constexpr KDCoordinate k_iconMargin = 22;
|
||||
static constexpr KDCoordinate k_iconWidth = 55;
|
||||
|
||||
@@ -189,9 +189,8 @@ void Controller::willDisplayCellAtLocation(HighlightCell * cell, int i, int j) {
|
||||
if (img_index != -1) {
|
||||
External::Archive::File image_file;
|
||||
if (External::Archive::fileAtIndex(img_index, image_file)) {
|
||||
const Image* img = new Image(55, 56, image_file.data, image_file.dataLength);
|
||||
appCell->setExtAppDescriptor(app_file.name, img);
|
||||
|
||||
// const Image* img = new Image(55, 56, image_file.data, image_file.dataLength);
|
||||
appCell->setExtAppDescriptor(app_file.name, image_file.data, image_file.dataLength);
|
||||
} else {
|
||||
appCell->setExtAppDescriptor(app_file.name, ImageStore::ExternalIcon);
|
||||
}
|
||||
@@ -234,7 +233,7 @@ void Controller::tableViewDidChangeSelection(SelectableTableView * t, int previo
|
||||
* (so the previous one is always visible). */
|
||||
int appIndex = (t->selectedColumn()+t->selectedRow()*k_numberOfColumns)+1;
|
||||
if (appIndex >= this->numberOfIcons()+1) {
|
||||
t->selectCellAtLocation(previousSelectedCellX, previousSelectedCellY);
|
||||
t->selectCellAtLocation((this->numberOfIcons()%3)-1, (this->numberOfIcons() / k_numberOfColumns));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ const ToolboxMessageTree calculChildren[] = {
|
||||
ToolboxMessageTree::Leaf(I18n::Message::IntCommandWithArg, I18n::Message::Integral, false, I18n::Message::IntCommand),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::SumCommandWithArg, I18n::Message::Sum, false, I18n::Message::SumCommand),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::ProductCommandWithArg, I18n::Message::Product, false, I18n::Message::ProductCommand),
|
||||
ToolboxMessageTree::Leaf(I18n::Message::Infinity, I18n::Message::InfinityMessage, false, I18n::Message::Infinity),
|
||||
};
|
||||
|
||||
const ToolboxMessageTree complexChildren[] = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
UpdateAvailable = "Elérhetö Frissítések!"
|
||||
UpdateMessage1 = "Fontos frissítések vannak"
|
||||
UpdateMessage2 = "a számológépéhez."
|
||||
UpdateMessage3 = "Látogasson el a weboldalunkra a számítógépröl"
|
||||
UpdateMessage3 = "Töltje le a weboldalunkról az utolso verziót"
|
||||
UpdateMessage4 = "www.numworks.com/update"
|
||||
BetaVersion = "BETA VERZIÓ"
|
||||
BetaVersionMessage1 = ""
|
||||
@@ -10,4 +10,4 @@ BetaVersionMessage3 = "Lehet, hogy hibákat észlel."
|
||||
BetaVersionMessage4 = ""
|
||||
BetaVersionMessage5 = "Kérjük, küldjön minden visszajelzést a"
|
||||
BetaVersionMessage6 = "contact@numworks.com email címre"
|
||||
Skip = "Ugrás"
|
||||
Skip = "Tovább"
|
||||
|
||||
@@ -11,17 +11,17 @@ ExponentialDistribution = "Exponenciális eloszlás"
|
||||
GeometricDistribution = "Geometriai eloszlás"
|
||||
PoissonDistribution = "Poisson eloszlás"
|
||||
ChiSquaredDistribution = "Chi-négyzet eloszlás"
|
||||
StudentDistribution = "Diák eloszlása"
|
||||
FisherDistribution = "Poisson eloszlás"
|
||||
StudentDistribution = "Student eloszlása"
|
||||
FisherDistribution = "Fisher eloszlás"
|
||||
ChooseParameters = "Paraméterek kiválasztása"
|
||||
RepetitionNumber = "n: A kísérletek száma"
|
||||
SuccessProbability = "p: A siker valószínüsége"
|
||||
RepetitionNumber = "n: ismétlések száma"
|
||||
SuccessProbability = "p: a siker valószínüsége"
|
||||
IntervalDefinition = "[a, b]: intervallum"
|
||||
LambdaExponentialDefinition = "λ: Rate paraméter"
|
||||
MeanDefinition = "μ: Mean"
|
||||
LambdaExponentialDefinition = "λ: paraméter"
|
||||
MeanDefinition = "μ: remény vagy atlag"
|
||||
DeviationDefinition = "σ: szórás"
|
||||
LambdaPoissonDefinition = "λ: Paraméter"
|
||||
DegreesOfFreedomDefinition = "k: Szabadságfokok"
|
||||
D1FisherDefinition = "d1: A számláló szabadsági foka"
|
||||
D2FisherDefinition = "d2: A nevezó szabadsági foka"
|
||||
LambdaPoissonDefinition = "λ: paraméter"
|
||||
DegreesOfFreedomDefinition = "k: szabadságfokok"
|
||||
D1FisherDefinition = "d1: a számláló szabadságfokai"
|
||||
D2FisherDefinition = "d2: a nevezó szabadságfokai"
|
||||
ComputeProbability = "Számítsa ki a valószínüségeket"
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
RegressionApp = "Regresszió"
|
||||
RegressionAppCapital = "REGRESSZIÓ"
|
||||
Regression = "Regresszió"
|
||||
Reg = "reg"
|
||||
MeanDot = "Középérték"
|
||||
RegressionCurve = "Regressziós görbe"
|
||||
XPrediction = "Jóslás megadva X"
|
||||
XPrediction = "Jóslás X megadva"
|
||||
YPrediction = "Jóslás Y megadva"
|
||||
ValueNotReachedByRegression = "Az ablakban az érték még nem volt elérve"
|
||||
NumberOfDots = "Pontok száma"
|
||||
Covariance = "Kovariancia"
|
||||
Linear = "Lineáris"
|
||||
Proportional = "Proportional"
|
||||
Proportional = "Általános"
|
||||
Quadratic = "Másodfokú"
|
||||
Cubic = "Kocka"
|
||||
Cubic = "Kockás"
|
||||
Quartic = "Kvartikus"
|
||||
Logarithmic = "Logaritmikus"
|
||||
Power = "Teljesítmény"
|
||||
Trigonometrical = "Trigonometrikus"
|
||||
Logistic = "Logisztikai"
|
||||
DataNotSuitableForRegression = " Az adat nem megfelelö ehhez a regressziós modellhez"
|
||||
DataNotSuitableForRegression = "Ezek az adatok nem megfelelö ehhez a regressziós modellhez"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SequenceApp = "Szekvenciák"
|
||||
SequenceAppCapital = "Szekvenciák"
|
||||
SequenceAppCapital = "SZEKVENCIÁK"
|
||||
SequenceTab = "Szekvenciák"
|
||||
AddSequence = "Szekvencia hozzáadása"
|
||||
ChooseSequenceType = "Válassza ki a sorozat típusát"
|
||||
@@ -14,9 +14,9 @@ NoSequence = "Nincs sorrend"
|
||||
NoActivatedSequence = "Nincs szekvencia bekapcsolva"
|
||||
NStart = "N start"
|
||||
NEnd = "N vég"
|
||||
TermSum = "A feltételek összege"
|
||||
SelectFirstTerm = "Elsö ciklus kiválasztása"
|
||||
SelectLastTerm = "Utolsó kifejezés kiválasztása"
|
||||
TermSum = "A kifejezés összege"
|
||||
SelectFirstTerm = "Elsö kifejezés kiválasztása "
|
||||
SelectLastTerm = "Utolsó kifejezés kiválasztása "
|
||||
ValueNotReachedBySequence = "Az értéket nem érte el a sorozat"
|
||||
NColumn = "n oszlop"
|
||||
FirstTermIndex = "Elsö kifejezés index"
|
||||
|
||||
@@ -12,21 +12,21 @@ ToDeactivateExamMode1 = "a vizsga mód kikapcsoláshoz"
|
||||
ToDeactivateExamMode2 = "csatlakoztassa a számológépet a számítógéphez"
|
||||
ToDeactivateExamMode3 = "vagy egy konnektorhoz."
|
||||
# --------------------- Please do not edit these messages ---------------------
|
||||
ExamModeWarning1 = "Vigyázat: ennek betartása"
|
||||
ExamModeWarning2 = "nem hivatalos szoftver vizsgálati módja"
|
||||
ExamModeWarning3 = "a NumWorks/Omega nem garantálja."
|
||||
AboutWarning1 = "Vigyázat: egy"
|
||||
AboutWarning2 = "nem hivatalos szoftververzió."
|
||||
AboutWarning3 = "A NumWorks nem vállal felelösséget"
|
||||
AboutWarning4 = "az esetleges károkért."
|
||||
ExamModeWarning1 = "Vigyázat: a használt szoftver nem"
|
||||
ExamModeWarning2 = "hivatalos, Numworks nem garantálja"
|
||||
ExamModeWarning3 = "a vizsgálati mód megfelelőségét."
|
||||
AboutWarning1 = "Vigyázat: a használt szoftver"
|
||||
AboutWarning2 = "nem hivatalos. A NumWorks nem"
|
||||
AboutWarning3 = "vállal felelösséget az"
|
||||
AboutWarning4 = "esetleges károkért."
|
||||
# -----------------------------------------------------------------------------
|
||||
About = "Egyéb"
|
||||
About = "Apropó"
|
||||
Degrees = "Fokok "
|
||||
Gradians = "Gradiens "
|
||||
Radian = "Radián "
|
||||
Decimal = "Tizedes "
|
||||
Scientific = "Tudományos "
|
||||
Engineering = "Mérnöki "
|
||||
Engineering = "Mérnökség "
|
||||
SignificantFigures = "Tizedes számok "
|
||||
Real = "Valódi "
|
||||
Cartesian = "Kartéziánus "
|
||||
@@ -40,31 +40,31 @@ FontSizes = "Python betü méret"
|
||||
LargeFont = "Nagy "
|
||||
SmallFont = "Kicsi "
|
||||
SerialNumber = "Sorozatszám"
|
||||
UpdatePopUp = "Elöugró ablak frissítése"
|
||||
BetaPopUp = "Béta pop-up"
|
||||
UpdatePopUp = "Frissítés figyelmeztetés"
|
||||
BetaPopUp = "Béta figyelmeztetés"
|
||||
Contributors = "Közremüködök"
|
||||
Accessibility = "Hozzáférhetöség"
|
||||
Accessibility = "Több vizuális beállitások"
|
||||
AccessibilityInvertColors = "Invertált színek"
|
||||
AccessibilityMagnify = "Nagyítás"
|
||||
AccessibilityMagnify = "Nagyító"
|
||||
AccessibilityGamma = "Gamma korrekció"
|
||||
AccessibilityGammaRed = "Piros gamma"
|
||||
AccessibilityGammaGreen = "Zöld gamma"
|
||||
AccessibilityGammaBlue = "Kék gamma"
|
||||
MathOptions = "Matematikai beállítások"
|
||||
SymbolMultiplication = "Szorzás"
|
||||
SymbolMultiplicationCross = "Kereszt"
|
||||
SymbolMultiplicationCross = "Kereszt "
|
||||
SymbolMultiplicationMiddleDot = "Pont "
|
||||
SymbolMultiplicationStar = "Csillag "
|
||||
SymbolMultiplicationAutoSymbol = "Automata "
|
||||
SymbolFunction = "Kifejezési formátum "
|
||||
SymbolDefaultFunction = "alapértelmezett "
|
||||
SymbolMultiplicationAutoSymbol = "Automatitus "
|
||||
SymbolFunction = "Kifejezés "
|
||||
SymbolDefaultFunction = "Alap "
|
||||
SymbolArgFunction = "Üres "
|
||||
SymbolArgDefaultFunction = "Argumentummal "
|
||||
PythonFont = "Python Betütipus"
|
||||
MemUse = "Memória"
|
||||
DateTime = "Date/time"
|
||||
ActivateClock = "Activate clock"
|
||||
Date = "Date"
|
||||
Time = "Time"
|
||||
RTCWarning1 = "Enabling the clock drains the battery faster"
|
||||
RTCWarning2 = "when the calculator is powered off."
|
||||
DateTime = "Dátum/óra"
|
||||
ActivateClock = "Óra bekapcsolása"
|
||||
Date = "Datum"
|
||||
Time = "Óra"
|
||||
RTCWarning1 = "Amikor a számológép alvómódban van, az óra"
|
||||
RTCWarning2 = "használása az elemet gyorsabban meríti ki."
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X Startwert"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Entwickler"
|
||||
BetaTesters = "Beta-Tester"
|
||||
ExamModeMode = "Modus"
|
||||
ExamModeModeStandard = "Standard "
|
||||
ExamModeModeNoSym = "Kein Symbol "
|
||||
ExamModeModeNoSymNoText = "Kein Symbol kein Text "
|
||||
ExamModeModeDutch = "Niederländisch "
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X inicio"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Desarrolladores"
|
||||
BetaTesters = "Probadores beta"
|
||||
ExamModeMode = "Modo"
|
||||
ExamModeModeStandard = "Estándar "
|
||||
ExamModeModeNoSym = "Sin simbólico "
|
||||
ExamModeModeNoSymNoText = "Sin simbólico sin texto "
|
||||
ExamModeModeDutch = "Holandés "
|
||||
|
||||
@@ -3,86 +3,99 @@ ActivateExamMode = "A vizsgálati mód aktiválása"
|
||||
ActivateDutchExamMode = "A holland vizsga mód aktiválása"
|
||||
ActiveExamModeMessage1 = "Az összes adatod"
|
||||
ActiveExamModeMessage2 = "törölve lesz ha"
|
||||
ActiveExamModeMessage3 = "aktiválod a vizsga módot."
|
||||
ActiveDutchExamModeMessage1 = "Az összes adat törlödik, amikor"
|
||||
ActiveDutchExamModeMessage2 = "aktiválod a vizsga módot. A Python "
|
||||
ActiveDutchExamModeMessage3 = "alkalmazás nem lesz elérhetö."
|
||||
Axis = "Tengely"
|
||||
ActiveExamModeMessage3 = "a vizsga módot aktiválja."
|
||||
ActiveDutchExamModeMessage1 = "Az összes adatod törölve lesz"
|
||||
ActiveDutchExamModeMessage2 = "ha a vizsga módot aktiválja. A"
|
||||
ActiveDutchExamModeMessage3 = "Python alkalmazás használhatatlan lesz."
|
||||
Axis = "Tengelyek"
|
||||
Cancel = "Mégse"
|
||||
ClearColumn = "Oszlop törlése"
|
||||
ColumnOptions = "Oszlop opciók"
|
||||
CopyColumnInList = "Az oszlop exportálása egy listába"
|
||||
DataNotSuitable = "Az adatok nem megfelelöek"
|
||||
DataTab = "Data"
|
||||
DefaultSetting = "Alapbeállítások"
|
||||
ConfirmDiscard1 = "Minden változtatást elvetünk"
|
||||
ConfirmDiscard2 = ""
|
||||
CopyColumnInList = "Az oszlopot egy listába másolni"
|
||||
Country = "Ország"
|
||||
CountryCA = "Kanada "
|
||||
CountryDE = "Németország "
|
||||
CountryES = "Spanyolország "
|
||||
CountryFR = "Franciaország "
|
||||
CountryGB = "Egyesült Királyság "
|
||||
CountryIT = "Olaszország "
|
||||
CountryNL = "Hollandia "
|
||||
CountryPT = "Portugália "
|
||||
CountryUS = "Egyesült Államok "
|
||||
CountryWW = "Nemzetközi "
|
||||
CountryWarning1 = "Ez a beállítás meghatározza az"
|
||||
CountryWarning2 = "alkalmazott tematikus konvenciókat."
|
||||
DataNotSuitable = "Az adatok nem felelnek meg"
|
||||
DataTab = "Adatok"
|
||||
Deg = "deg"
|
||||
Deviation = "Varianca"
|
||||
DisplayValues = "Értékek mutatása"
|
||||
Empty = "Üres"
|
||||
Eng = "eng"
|
||||
ExitExamMode1 = "Kilépés a vizsga "
|
||||
ExitExamMode1 = "Kilépni a vizsga "
|
||||
ExitExamMode2 = "módból?"
|
||||
Exponential = "Exponenciális"
|
||||
FillWithFormula = "Töltse ki egy képlettel"
|
||||
ForbiddenValue = "Tiltott érték"
|
||||
FunctionColumn = "0 (0) oszlop"
|
||||
FunctionColumn = "0(0) oszlop"
|
||||
FunctionOptions = "Funkció opciók"
|
||||
Goto = "Menj ide"
|
||||
Goto = "Menj ..."
|
||||
GraphTab = "Grafikon"
|
||||
HardwareTestLaunch1 = "Ön elindítja a hardvert"
|
||||
HardwareTestLaunch2 = " tesztet. A teszt végén neked"
|
||||
HardwareTestLaunch3 = "kell vissza állítani az eszközt,és"
|
||||
HardwareTestLaunch4 = "az összes adat törlödni fog."
|
||||
Initialization = "Elöbeállítás"
|
||||
HardwareTestLaunch1 = "A hardverteszt indítása :"
|
||||
HardwareTestLaunch2 = "Nyomjon a reset gombra a"
|
||||
HardwareTestLaunch3 = "teszt megállításához (ez"
|
||||
HardwareTestLaunch4 = "az adatokat törölni fogja)"
|
||||
IntervalSet = "Állítsa be az intervallumot"
|
||||
Language = "Nyelv"
|
||||
LowBattery = "Alacsony töltöttség"
|
||||
LowBattery = "Majdnem kimerült az elem"
|
||||
Mean = "középérték"
|
||||
Move = " Move: "
|
||||
Move = " Odébb rakni: "
|
||||
NameCannotStartWithNumber = "Egy név nem kezdöthet számmal"
|
||||
NameTaken = "Ez a név foglalt"
|
||||
NameTooLong = "Ez a név túl hosszú"
|
||||
Navigate = "Hajózik"
|
||||
Next = "következö"
|
||||
NEnd = "N vége"
|
||||
NoDataToPlot = "Nincs rajzolható adat"
|
||||
NoFunctionToDelete = "Nincs törölhetö függvény"
|
||||
NoValueToCompute = "Nincs számítható érték"
|
||||
NEnd = "N vége"
|
||||
NStart = "N kezdete"
|
||||
Ok = "Megerösítés"
|
||||
Ok = "Érvényesítés"
|
||||
Or = " vagy "
|
||||
Orthonormal = "Ortonormál"
|
||||
Plot = "Grafikon elkészítése"
|
||||
Orthonormal = "Ortonormált"
|
||||
Plot = "Grafikon rajzolása"
|
||||
PoolMemoryFull1 = "A memória megtelt."
|
||||
PoolMemoryFull2 = "Kérem próbálja újra."
|
||||
Rad = "rad"
|
||||
Rename = "Átnevezés"
|
||||
RoundAbscissa = "Egész szám"
|
||||
Sci = "sci"
|
||||
SortValues = "Rendezés értékek növelésével"
|
||||
SortSizes = "Rendezés növekvő frekvenciák szerint"
|
||||
SquareSum = "Négyzetek összege"
|
||||
StandardDeviation = "Alap eltérés"
|
||||
StoreExpressionNotAllowed = "'tárolás' nem engedélyezett"
|
||||
StatTab = "Statisztikák"
|
||||
Step = "Lépés"
|
||||
StorageMemoryFull1 = "A memória megtelt."
|
||||
StorageMemoryFull2 = "Adatok törlése és próbálkozzon újra."
|
||||
StorageMemoryFull2 = "Törlöljön adatokat és próbálkozzon újra."
|
||||
StoreExpressionNotAllowed = "'szore' nem engedélyezett"
|
||||
SyntaxError = "Szintaxis hiba"
|
||||
Sym = "sym"
|
||||
TEnd = "T vég"
|
||||
ThetaEnd = "θ vége"
|
||||
ThetaStart = "θ kezdete"
|
||||
TStart = "T kezdete"
|
||||
ToZoom = "Zoom:"
|
||||
Trigonometric = "Trigonometrikus"
|
||||
UndefinedValue = "Nincs meghatározva érték"
|
||||
ToZoom = "Nagyítani : "
|
||||
UndefinedValue = "Meghatározatlan adat"
|
||||
ValuesTab = "Táblázat"
|
||||
Warning = "Figyelem"
|
||||
XEnd = "X vége"
|
||||
XStart = "X kezdete"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Fejlesztök"
|
||||
Zoom = "Nagyítás"
|
||||
Developers = "Kifejlesztök"
|
||||
BetaTesters = "Béta tesztelök"
|
||||
ExamModeMode = "Üzemmód"
|
||||
ExamModeModeStandard = "Normál"
|
||||
ExamModeModeNoSym = "Nincs sym"
|
||||
ExamModeModeNoSymNoText = "Nincs szimbolikus, nincs szöveg "
|
||||
ExamModeModeStandard = "Normál "
|
||||
ExamModeModeNoSym = "Szimbólikus nélkül "
|
||||
ExamModeModeNoSymNoText = "Szimbólikus és szöveg nélkül "
|
||||
ExamModeModeDutch = "Holland "
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X iniziale"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Developers"
|
||||
BetaTesters = "Beta testers"
|
||||
ExamModeMode = "Modalità"
|
||||
ExamModeModeStandard = "Standard "
|
||||
ExamModeModeNoSym = "Nessun simbolo "
|
||||
ExamModeModeNoSymNoText = "Nessun simbolo nessun testo "
|
||||
ExamModeModeDutch = "Olandese "
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X begin"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Developers"
|
||||
BetaTesters = "Beta testers"
|
||||
ExamModeMode = "Mode"
|
||||
ExamModeModeStandard = "Standaard "
|
||||
ExamModeModeNoSym = "Geen sym "
|
||||
ExamModeModeNoSymNoText = "Geen sym geen tekst "
|
||||
ExamModeModeDutch = "Nederlands "
|
||||
|
||||
@@ -94,3 +94,8 @@ XStart = "X início"
|
||||
Zoom = "Zoom"
|
||||
Developers = "Desenvolvedores"
|
||||
BetaTesters = "Testadores beta"
|
||||
ExamModeMode = "Modo"
|
||||
ExamModeModeStandard = "Padrão "
|
||||
ExamModeModeNoSym = "Sem sym "
|
||||
ExamModeModeNoSymNoText = "Sem sym sem texto "
|
||||
ExamModeModeDutch = "holandês "
|
||||
|
||||
@@ -134,6 +134,7 @@ GcdCommandWithArg = "gcd(p,q)"
|
||||
Gon = "gon"
|
||||
ImCommandWithArg = "im(z)"
|
||||
IndentityCommandWithArg = "identity(n)"
|
||||
Infinity = "infinity"
|
||||
IntCommand = "int(\x11,x,\x11,\x11)"
|
||||
IntCommandWithArg = "int(f(x),x,a,b)"
|
||||
InvBinomialCommandWithArg = "invbinom(a,n,p)"
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
SolverApp = "Egyenletek"
|
||||
SolverAppCapital = "Egyenletek"
|
||||
AddEquation = "Egyenlet hozzáadása"
|
||||
ResolveEquation = "Oldja meg az egyenletet"
|
||||
ResolveSystem = "A rendszer megoldása"
|
||||
SolverAppCapital = "EGYENLETEK"
|
||||
AddEquation = "Egyenlet hozzáadás"
|
||||
ResolveEquation = "Egyenletet megoldása"
|
||||
ResolveSystem = "Rendszer megoldása"
|
||||
UseEquationModel = "Használjon egyenleti sablont"
|
||||
RequireEquation = "A bemenetnek egyenletnek kell lennie"
|
||||
UnrealEquation = "Unreal egyenlet"
|
||||
UndefinedEquation = "Definiálatlan egyenlet"
|
||||
TooManyVariables = "Túl sok ismeretlen"
|
||||
RequireEquation = "A bemenetnek csak egyenlet lehet"
|
||||
UnrealEquation = "Irreális egyenlet"
|
||||
UndefinedEquation = "Egy egyenlet meghatározatlan "
|
||||
TooManyVariables = "Túl sok ismeretlen van"
|
||||
NonLinearSystem = "A rendszer nem lineáris"
|
||||
Solution = "Megoldás"
|
||||
ApproximateSolution = "Hozzávetöleges megoldás"
|
||||
SearchInverval = "Keresési intervallum"
|
||||
NoSolutionSystem = "A rendszernek nincs megoldása"
|
||||
NoSolutionEquation = "Az egyenletnek nincs megoldása"
|
||||
NoSolutionInterval = "Nem találtunk megoldást az intervallumban"
|
||||
EnterEquation = "Írja be az egyenletet"
|
||||
InfiniteNumberOfSolutions = "Végtelen számú megoldás létezik"
|
||||
ApproximateSolutionIntervalInstruction0 = "Adja meg a keresés intervallumát"
|
||||
ApproximateSolutionIntervalInstruction1 = "egy hozzávetöleges megoldáshoz"
|
||||
OnlyFirstSolutionsDisplayed0 = "Csak az elsö 10 megoldás"
|
||||
OnlyFirstSolutionsDisplayed1 = "megjelenik"
|
||||
NoSolutionInterval = "Nincs megoldás ebben az intervallumban"
|
||||
EnterEquation = "Írjon be egy egyenletet"
|
||||
InfiniteNumberOfSolutions = "Végtelen menyi megoldások léteznek"
|
||||
ApproximateSolutionIntervalInstruction0 = "Irja be a keresés intervallumot"
|
||||
ApproximateSolutionIntervalInstruction1 = "amelyikbe egy hozzávetöleges megoldást keressen"
|
||||
OnlyFirstSolutionsDisplayed0 = "Csak a 10 elsö megoldások"
|
||||
OnlyFirstSolutionsDisplayed1 = "jelennek meg"
|
||||
PolynomeHasNoRealSolution0 = "A polinomnak nincs"
|
||||
PolynomeHasNoRealSolution1 = "valódi gyökére"
|
||||
PredefinedVariablesUsedLeft = "Használt"
|
||||
PredefinedVariablesUsedRight = "elöre definiált változók"
|
||||
PredefinedVariablesIgnoredLeft = "mellözött"
|
||||
PredefinedVariablesIgnoredRight = "elöre definiált változók"
|
||||
PredefinedVariablesUsedLeft = "Alkalmazott elöre-"
|
||||
PredefinedVariablesUsedRight = "meghatározott változók"
|
||||
PredefinedVariablesIgnoredLeft = "Mellözött"
|
||||
PredefinedVariablesIgnoredRight = "elöre-meghatározott változók"
|
||||
|
||||
@@ -24,4 +24,4 @@ StandardDeviationSigma = "Standard deviation σ"
|
||||
SampleStandardDeviationS = "Sample std deviation s"
|
||||
SumValues = "Sum of values"
|
||||
SumSquareValues = "Sum of squared values"
|
||||
InterquartileRange = "Interquartile range"
|
||||
InterquartileRange = "Interquartile range"
|
||||
|
||||
@@ -5,21 +5,23 @@ BoxTab = "Doboz"
|
||||
Values1 = "V1 értékek"
|
||||
Values2 = "V2 értékek"
|
||||
Values3 = "V3 értékek"
|
||||
Sizes1 = "N1 méret"
|
||||
Sizes2 = "N2 méret"
|
||||
Sizes3 = "N3 méret"
|
||||
Frequencies1 = "N1 Frekvencia"
|
||||
Frequencies2 = "N2 Frekvencia"
|
||||
Frequencies3 = "N3 Frekvencia"
|
||||
ImportList = "Importálás egy listáról"
|
||||
Interval = "Intervallum"
|
||||
Size = "Méret"
|
||||
Frequency = "Frekvencia"
|
||||
Frequency = "Frekvencia:"
|
||||
RelativeFrequency = "Relatív:"
|
||||
HistogramSet = "Hisztogram beállítások"
|
||||
RectangleWidth = "Tálca szélessége"
|
||||
BarStart = "X kezdet"
|
||||
FirstQuartile = "Elsö kvartilis"
|
||||
Median = "Medián"
|
||||
ThirdQuartile = "Harmadik kvartilis"
|
||||
TotalSize = "Teljes méret"
|
||||
TotalFrequency = "Adatpontok száma "
|
||||
Range = "Intervallum"
|
||||
StandardDeviationSigma = "σ szórás"
|
||||
SampleStandardDeviationS = "Minta std eltérés s"
|
||||
SampleStandardDeviationS = "Minta std eltérés σ"
|
||||
SumValues = "Értékek összege"
|
||||
SumSquareValues = "Négyzetértékek összege"
|
||||
InterquartileRange = "Interkvartilis tartomány"
|
||||
|
||||
@@ -21,6 +21,7 @@ UnitDistanceMeterNano = "Nanometer"
|
||||
UnitDistanceMeterPico = "Pikometer"
|
||||
UnitDistanceAstronomicalUnit = "Astronomische Einheit"
|
||||
UnitDistanceLightYear = "Lichtjahr"
|
||||
UnitDistanceParsec = "Parsec"
|
||||
UnitDistanceMile = "Meile"
|
||||
UnitDistanceYard = "Yard"
|
||||
UnitDistanceFoot = "Fuß"
|
||||
@@ -109,6 +110,7 @@ Identity = "Einheitsmatrix der Größe n"
|
||||
Lists = "Listen"
|
||||
HyperbolicTrigonometry = "Hyperbelfunktionen"
|
||||
Fluctuation = "Konfidenzintervall"
|
||||
InfinityMessage = "Unendlich"
|
||||
DerivateNumber = "Ableitung"
|
||||
Integral = "Integral"
|
||||
Sum = "Summe"
|
||||
|
||||
@@ -110,6 +110,7 @@ Identity = "Identity matrix of size n"
|
||||
Lists = "List"
|
||||
HyperbolicTrigonometry = "Hyperbolic trigonometry"
|
||||
Fluctuation = "Prediction Interval"
|
||||
InfinityMessage = "Infinity"
|
||||
DerivateNumber = "Derivative"
|
||||
Integral = "Integral"
|
||||
Sum = "Sum"
|
||||
|
||||
@@ -22,6 +22,8 @@ UnitDistanceMeterPico = "Picometer"
|
||||
UnitDistanceImperialMenu = "US Customary"
|
||||
UnitDistanceAstronomicalUnit = "Astronomical unit"
|
||||
UnitDistanceLightYear = "Light year"
|
||||
UnitDistanceParsec = "Parsec"
|
||||
UnitMassImperialMenu = "US Customary"
|
||||
UnitDistanceMile = "Milla"
|
||||
UnitDistanceYard = "Yardas"
|
||||
UnitDistanceFoot = "Pie"
|
||||
@@ -108,6 +110,7 @@ Identity = "Matriz identidad de tamaño n"
|
||||
Lists = "Listas"
|
||||
HyperbolicTrigonometry = "Trigonometría hiperbólica"
|
||||
Fluctuation = "Interval de predicción"
|
||||
InfinityMessage = "Infinito"
|
||||
DerivateNumber = "Derivada"
|
||||
Integral = "Integral"
|
||||
Sum = "Suma"
|
||||
|
||||
@@ -114,6 +114,7 @@ Identity = "Matrice identité de taille n"
|
||||
Lists = "Listes"
|
||||
HyperbolicTrigonometry = "Trigonométrie hyperbolique"
|
||||
Fluctuation = "Intervalle de fluctuation"
|
||||
InfinityMessage = "Infini"
|
||||
DerivateNumber = "Nombre derivé de f en a"
|
||||
Integral = "Intégrale de f sur [a;b]"
|
||||
Sum = "Somme"
|
||||
|
||||
@@ -27,6 +27,8 @@ UnitDistanceMile = "Mérföld"
|
||||
UnitDistanceAstronomicalUnit = "Csillagászati egység"
|
||||
UnitDistanceLightYear = "Fény év"
|
||||
UnitDistanceParsec = "Parsec"
|
||||
UnitMassShortTon = "Rövid tonna"
|
||||
UnitMassLongTon = "Hosszú tonna"
|
||||
UnitMassImperialMenu = "Angolszász mértékegységek"
|
||||
UnitMassPound = "Font"
|
||||
UnitMassOunce = "Uncia"
|
||||
@@ -42,31 +44,19 @@ UnitCurrentAmpere = "Amper"
|
||||
UnitCurrentAmpereMilli = "Milliamper"
|
||||
UnitCurrentAmpereMicro = "Mikroamper"
|
||||
UnitTemperatureMenu = "Hömérséklet"
|
||||
UnitTemperatureKelvin = "Kelvin"
|
||||
UnitAmountMenu = "Az anyag mennyisége"
|
||||
UnitAmountMole = "Mól"
|
||||
UnitAmountMoleMilli = "Millimól"
|
||||
UnitAmountMoleMicro = "Mikromól"
|
||||
UnitLuminousIntensityMenu = "Fényerö"
|
||||
UnitLuminousIntensityCandela = "Candela"
|
||||
UnitFrequencyMenu = "Frekvencia"
|
||||
UnitFrequencyHertzGiga = "Gigahertz"
|
||||
UnitFrequencyHertzMega = "Megahertz"
|
||||
UnitFrequencyHertzKilo = "Kilohertz"
|
||||
UnitFrequencyHertz = "Hertz"
|
||||
UnitForceMenu = "Erö"
|
||||
UnitForceNewtonKilo = "Kilonewton"
|
||||
UnitForceNewton = "Newton"
|
||||
UnitForceNewtonMilli = "Millinewton"
|
||||
UnitPressureMenu = "Nyomás"
|
||||
UnitPressurePascal = "Pascal"
|
||||
UnitPressurePascalHecto = "Hectopascal"
|
||||
UnitPressureBar = "Bár"
|
||||
UnitPressureAtm = "Légkör"
|
||||
UnitEnergyMenu = "Energia"
|
||||
UnitEnergyJouleMenu = "Joule"
|
||||
UnitEnergyJouleKilo = "Kilojoule"
|
||||
UnitEnergyJoule = "Joule"
|
||||
UnitEnergyJouleMilli = "Millijoule"
|
||||
UnitEnergyEletronVoltMenu = "Electronvolt"
|
||||
UnitEnergyElectronVoltMega = "Megaelectronvolt"
|
||||
@@ -74,40 +64,38 @@ UnitEnergyElectronVoltKilo = "Kiloelectronvolt"
|
||||
UnitEnergyElectronVolt = "Electronvolt"
|
||||
UnitEnergyElectronVoltMilli = "Millielectronvolt"
|
||||
UnitPowerMenu = "Teljesítmény"
|
||||
UnitPowerWattGiga = "Gigawatt"
|
||||
UnitPowerWattMega = "Megawatt"
|
||||
UnitPowerWattKilo = "Kilowatt"
|
||||
UnitPowerWatt = "Watt"
|
||||
UnitPowerWattMilli = "Milliwatt"
|
||||
UnitPowerWattMicro = "Microwatt"
|
||||
UnitElectricChargeMenu = "Elektromos töltés"
|
||||
UnitChargeCoulomb = "Coulomb"
|
||||
UnitPotentialMenu = "Elektromos potenciál"
|
||||
UnitPotentialVoltKilo = "Kilovolt"
|
||||
UnitPotentialVolt = "Volt"
|
||||
UnitPotentialVoltMilli = "Millivolt"
|
||||
UnitPotentialVoltMicro = "Microvolt"
|
||||
UnitCapacitanceMenu = "Elektromos kapacitás"
|
||||
UnitCapacitanceFarad = "Farad"
|
||||
UnitCapacitanceFaradMilli = "Millifarad"
|
||||
UnitCapacitanceFaradMicro = "Microfarad"
|
||||
UnitResistanceMenu = "Elektromos ellenállás"
|
||||
UnitResistanceOhmKilo = "Kiloohm"
|
||||
UnitResistanceOhm = "Ohm"
|
||||
UnitConductanceMenu = "Elektromos vezetöképesség"
|
||||
UnitConductanceSiemens = "Siemens"
|
||||
UnitConductanceSiemensMilli = "Millisiemens"
|
||||
UnitMagneticFieldMenu = "Mágneses mezö"
|
||||
UnitMagneticFieldTesla = "Tesla"
|
||||
InductanceMenu = "Elektromos induktivitás"
|
||||
UnitInductanceHenry = "Henry"
|
||||
UnitSurfaceMenu = "Terület"
|
||||
UnitSurfaceAcre = "Acre"
|
||||
UnitSurfaceHectar = "Hektár"
|
||||
UnitVolumeMenu = "Kötet"
|
||||
UnitVolumeLiter = "Liter"
|
||||
UnitVolumeLiterDeci = "Deciliter"
|
||||
UnitVolumeLiterCenti = "Centiliter"
|
||||
UnitVolumeLiterMilli = "Milliliter"
|
||||
UnitVolumeTeaspoon = "Teáskanál"
|
||||
UnitVolumeTablespoon = "evőkanál"
|
||||
UnitVolumeFluidOunce = "Folyadék uncia"
|
||||
UnitVolumeCup = "Kupa"
|
||||
UnitVolumePint = "Pint"
|
||||
UnitVolumeQuart = "Quart"
|
||||
UnitVolumeGallon = "Gallon"
|
||||
UnitMetricMenu = "Metrikus"
|
||||
UnitImperialMenu = "Birodalmi"
|
||||
Toolbox = "Eszköztár"
|
||||
AbsoluteValue = "Abszolút érték"
|
||||
NthRoot = "n-gyökér"
|
||||
@@ -122,6 +110,7 @@ Identity = "n méretü azonosító mátrix"
|
||||
Lists = "Lista"
|
||||
HyperbolicTrigonometry = "Hiperbolikus trigonometria"
|
||||
Fluctuation = "Jósolt intervallum"
|
||||
InfinityMessage = "Végtelen"
|
||||
DerivateNumber = "Származékos"
|
||||
Integral = "Integral"
|
||||
Sum = "Összeg"
|
||||
@@ -142,6 +131,12 @@ Determinant = "determináns"
|
||||
Transpose = "Átültetés"
|
||||
Trace = "Trace"
|
||||
Dimension = "Méret"
|
||||
RowEchelonForm = "Sor echelon forma"
|
||||
ReducedRowEchelonForm = "Csökkentett sorú echelon forma"
|
||||
Vectors = "Vektorok"
|
||||
Dot = "Pont termék"
|
||||
Cross = "Kereszt termék"
|
||||
NormVector = "Norm"
|
||||
Sort = "Növekvö sorrend"
|
||||
InvSort = "Csökkenö rendezés"
|
||||
Maximum = "Maximum"
|
||||
|
||||
@@ -110,6 +110,7 @@ Identity = "Matrice identità di dimensione n"
|
||||
Lists = "Elenchi"
|
||||
HyperbolicTrigonometry = "Funzioni iperboliche"
|
||||
Fluctuation = "Intervallo di previsione"
|
||||
InfinityMessage = "Infinito"
|
||||
DerivateNumber = "Derivata"
|
||||
Integral = "Integrale"
|
||||
Sum = "Somma"
|
||||
|
||||
@@ -110,6 +110,7 @@ Identity = "Eenheidsmatrix van formaat n"
|
||||
Lists = "Lijst"
|
||||
HyperbolicTrigonometry = "Hyperbolische functies"
|
||||
Fluctuation = "Statistische intervallen"
|
||||
InfinityMessage = "Eindeloos"
|
||||
DerivateNumber = "Afgeleide"
|
||||
Integral = "Integraal"
|
||||
Sum = "Som"
|
||||
|
||||
@@ -110,6 +110,7 @@ Identity = "Matriz identidade de ordem n"
|
||||
Lists = "Listas"
|
||||
HyperbolicTrigonometry = "Funções hiperbólicas"
|
||||
Fluctuation = "Intervalo de confiança"
|
||||
InfinityMessage = "Infinito"
|
||||
DerivateNumber = "Derivada"
|
||||
Integral = "Integral"
|
||||
Sum = "Somatório"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
USBConnected = "A SZÁMOLÓGÉP CSATLAKOZTATVA VAN"
|
||||
ConnectedMessage1 = "Az adatok átviteléhez keresse meg az"
|
||||
ConnectedMessage2 = "oldalunkat a számítógépröl"
|
||||
ConnectedMessage3 = "workshop.numworks.com"
|
||||
ConnectedMessage4 = "Nyomja meg a készülék BACK gombját"
|
||||
ConnectedMessage5 = "vagy húzza ki hogy"
|
||||
ConnectedMessage6 = "lecsatlakozzon"
|
||||
ConnectedMessage1 = ""
|
||||
ConnectedMessage2 = "Adat másolásához csatlakozzon"
|
||||
ConnectedMessage3 = "fel workshop.numworks.com ra."
|
||||
ConnectedMessage4 = "Nyomjon majd a VISSZA gombra"
|
||||
ConnectedMessage5 = "vagy huzza ki a kábelt azért"
|
||||
ConnectedMessage6 = "hogy a másolás véget érjen."
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
Variables = "Változók"
|
||||
Expressions = "Kifejezések"
|
||||
Functions = "Függvények"
|
||||
EmptyExpressionBox0 = "Nem határozott meg egyetlen változót sem."
|
||||
EmptyFunctionBox0 = "Nem határozott meg egyetlen függvényt sem."
|
||||
Functions = "Funciók"
|
||||
Sequences = "Szekvenciák"
|
||||
EmptyExpressionBox0 = "Nincs meghatározott változó."
|
||||
EmptyFunctionBox0 = "Nincs meghatározott funkció."
|
||||
EmptySequenceBox0 = "Még nem definiált szekvenciákat."
|
||||
EmptyExpressionBox1 = "A változó meghatározásához írja be:"
|
||||
EmptyFunctionBox1 = "Függvény meghatározásához írja be:"
|
||||
EmptyExpressionBox2 = "A változó neve tartalmazhatja:"
|
||||
EmptyFunctionBox2 = "A függvény neve tartalmazhatja:"
|
||||
EmptyFunctionBox1 = "Funkció meghatározásához írja be:"
|
||||
EmptySequenceBox1 = ""
|
||||
EmptyExpressionBox2 = "A változó neve tartalmazhat:"
|
||||
EmptyFunctionBox2 = "A funkció neve tartalmazhat:"
|
||||
EnableCharacters = "A..Z, a..z, 0..9 és _"
|
||||
|
||||
@@ -7,9 +7,10 @@ HOME_DISPLAY_EXTERNALS ?= 1
|
||||
EPSILON_VERSION ?= 15.3.1
|
||||
OMEGA_VERSION ?= 1.21.0
|
||||
# OMEGA_USERNAME ?= N/A
|
||||
OMEGA_STATE ?= dev
|
||||
OMEGA_STATE ?= public
|
||||
EPSILON_APPS ?= calculation rpn graph code statistics probability solver atom sequence regression settings external
|
||||
EPSILON_I18N ?= en fr
|
||||
SUBMODULES_APPS = atom rpn
|
||||
EPSILON_I18N ?= en fr nl pt it de es hu
|
||||
EPSILON_COUNTRIES ?= WW CA DE ES FR GB IT NL PT US
|
||||
EPSILON_GETOPT ?= 0
|
||||
EPSILON_TELEMETRY ?= 0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
TOOLCHAIN = devkitarm
|
||||
EXE = elf
|
||||
|
||||
HANDY_TARGETS_EXTENSIONS = 3dsx
|
||||
HANDY_TARGETS_EXTENSIONS = 3dsx cia
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ $(BUILD_DIR)/test.external_flash.write.$(EXE): $(BUILD_DIR)/quiz/src/test_ion_ex
|
||||
@echo " button on the back of your device."
|
||||
$(Q) until $(PYTHON) build/device/dfu.py -l | grep -E "0483:a291|0483:df11" > /dev/null 2>&1; do sleep 2;done
|
||||
$(eval DFU_SLAVE := $(shell $(PYTHON) build/device/dfu.py -l | grep -E "0483:a291|0483:df11"))
|
||||
$(Q) if [[ "$(DFU_SLAVE)" == *"0483:df11"* ]]; \
|
||||
$(Q) if expr "$(DFU_SLAVE)" : ".*0483:df11.*" > /dev/null; \
|
||||
then \
|
||||
$(PYTHON) build/device/dfu.py -u $(word 2,$^); \
|
||||
sleep 2; \
|
||||
|
||||
@@ -1,9 +1,23 @@
|
||||
|
||||
%.smdh: ion/src/simulator/3ds/assets/logo.png
|
||||
$(Q) echo "SMDH $(notdir $@)"
|
||||
$(Q) smdhtool --create "Epsilon" "A Numworks in your 3DS!" "Numworks" ion/src/simulator/3ds/assets/logo.png $@
|
||||
$(Q) smdhtool --create "Epsilon" "A Numworks in your 3DS!" "Numworks" $< $@
|
||||
|
||||
$(BUILD_DIR)/%.3dsx: $(BUILD_DIR)/%.elf $(BUILD_DIR)/%.smdh
|
||||
$(Q) echo "3DSX $(notdir $@)"
|
||||
$(Q) 3dsxtool $< $@ --smdh=$(word 2,$^)
|
||||
|
||||
cia_version_tuple := $(subst ., ,$(OMEGA_VERSION))
|
||||
|
||||
cia_version_major := $(word 1,$(cia_version_tuple))
|
||||
cia_version_minor := $(word 2,$(cia_version_tuple))
|
||||
cia_version_micro := $(word 3,$(cia_version_tuple))
|
||||
|
||||
|
||||
$(BUILD_DIR)/%.cxi: $(BUILD_DIR)/%.elf ion/src/simulator/3ds/assets/app.rsf ion/src/simulator/3ds/assets/banner.bnr ion/src/simulator/3ds/assets/icon.icn
|
||||
$(Q) echo "CXI $(notdir $@)"
|
||||
$(Q) makerom -o $@ -rsf ion/src/simulator/3ds/assets/app.rsf -target t -elf $< -icon ion/src/simulator/3ds/assets/icon.icn -banner ion/src/simulator/3ds/assets/banner.bnr -desc app:4
|
||||
|
||||
$(BUILD_DIR)/%.cia: $(BUILD_DIR)/%.cxi
|
||||
$(Q) echo "CIA $(notdir $@)"
|
||||
$(Q) makerom -f cia -o $@ -target t -i $<:0:0
|
||||
|
||||
@@ -8,9 +8,12 @@ class ImageView : public View {
|
||||
public:
|
||||
ImageView();
|
||||
void setImage(const Image * image);
|
||||
void setImage(const uint8_t *data, size_t dataLength);
|
||||
void drawRect(KDContext * ctx, KDRect rect) const override;
|
||||
private:
|
||||
const Image * m_image;
|
||||
const uint8_t * m_data;
|
||||
size_t m_dataLength;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,9 @@ extern "C" {
|
||||
|
||||
ImageView::ImageView() :
|
||||
View(),
|
||||
m_image(nullptr)
|
||||
m_image(nullptr),
|
||||
m_data(nullptr),
|
||||
m_dataLength(0)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -15,27 +17,50 @@ constexpr static int maxPixelBufferSize = 4000;
|
||||
// Boot logo file is 188 x 21 = 3948
|
||||
|
||||
void ImageView::drawRect(KDContext * ctx, KDRect rect) const {
|
||||
if (m_image == nullptr) {
|
||||
const uint8_t* data;
|
||||
size_t size;
|
||||
size_t pixelBufferSize;
|
||||
|
||||
if (m_image != nullptr) {
|
||||
|
||||
assert(bounds().width() == m_image->width());
|
||||
assert(bounds().height() == m_image->height());
|
||||
|
||||
data = m_image->compressedPixelData();
|
||||
size = m_image->compressedPixelDataSize();
|
||||
pixelBufferSize = m_image->width() * m_image->height();
|
||||
} else if (m_data != nullptr) {
|
||||
data = m_data;
|
||||
size = m_dataLength;
|
||||
// We assume the external images are made properly.
|
||||
// TODO: Maybe we shouldn't...
|
||||
pixelBufferSize = bounds().width() * bounds().height();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
assert(bounds().width() == m_image->width());
|
||||
assert(bounds().height() == m_image->height());
|
||||
|
||||
KDColor pixelBuffer[maxPixelBufferSize];
|
||||
int pixelBufferSize = m_image->width() * m_image->height();
|
||||
assert(pixelBufferSize <= maxPixelBufferSize);
|
||||
assert(Ion::stackSafe()); // That's a VERY big buffer we're allocating on the stack
|
||||
|
||||
Ion::decompress(
|
||||
m_image->compressedPixelData(),
|
||||
data,
|
||||
reinterpret_cast<uint8_t *>(pixelBuffer),
|
||||
m_image->compressedPixelDataSize(),
|
||||
size,
|
||||
pixelBufferSize * sizeof(KDColor)
|
||||
);
|
||||
|
||||
ctx->fillRectWithPixels(bounds(), pixelBuffer, nullptr);
|
||||
}
|
||||
|
||||
void ImageView::setImage(const uint8_t *data, size_t dataLength) {
|
||||
if (data != m_data && dataLength != m_dataLength) {
|
||||
m_data = data;
|
||||
m_dataLength = dataLength;
|
||||
markRectAsDirty(bounds());
|
||||
}
|
||||
}
|
||||
|
||||
void ImageView::setImage(const Image * image) {
|
||||
if (image != m_image) {
|
||||
m_image = image;
|
||||
|
||||
@@ -66,5 +66,6 @@ static constexpr CodePoint UCodePointNArySummation = 0x2211; // ∑
|
||||
static constexpr CodePoint UCodePointSquareRoot = 0x221a; // √
|
||||
static constexpr CodePoint UCodePointIntegral = 0x222b; // ∫
|
||||
static constexpr CodePoint UCodePointMathematicalBoldSmallI = 0x1d422; // 𝐢
|
||||
static constexpr CodePoint UCodePointInfinity = 0x221e; // ∞
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2,11 +2,13 @@
|
||||
ion_src += $(addprefix ion/src/simulator/3ds/, \
|
||||
main.cpp \
|
||||
callback.cpp \
|
||||
clipboard.cpp \
|
||||
display.cpp \
|
||||
framebuffer.cpp \
|
||||
telemetry_init.cpp \
|
||||
keyboard.cpp \
|
||||
events_keyboard.cpp \
|
||||
events.cpp \
|
||||
driver/display.cpp \
|
||||
driver/language.cpp \
|
||||
driver/led.cpp \
|
||||
@@ -22,8 +24,10 @@ sdl_simu_needs_to_be_removed += $(addprefix ion/src/simulator/shared/, \
|
||||
dummy/led.cpp \
|
||||
dummy/usb.cpp \
|
||||
dummy/battery.cpp \
|
||||
clipboard.cpp \
|
||||
display.cpp:-headless \
|
||||
events_keyboard.cpp:-headless \
|
||||
events.cpp \
|
||||
framebuffer_base.cpp \
|
||||
keyboard_sdl.cpp:-headless \
|
||||
main_sdl.cpp:-headless \
|
||||
|
||||
224
ion/src/simulator/3ds/assets/app.rsf
Normal file
@@ -0,0 +1,224 @@
|
||||
BasicInfo:
|
||||
Title : Omega
|
||||
CompanyCode : "00"
|
||||
ProductCode : CTR-E-OMEGA
|
||||
Logo : Homebrew # Nintendo / Licensed / Distributed / iQue / iQueForSystem
|
||||
|
||||
RomFs:
|
||||
# Specifies the root path of the read only file system to include in the ROM.
|
||||
#RootPath : romfs
|
||||
|
||||
TitleInfo:
|
||||
Category : Application
|
||||
UniqueId : 0x069420
|
||||
|
||||
Option:
|
||||
UseOnSD : true # true if App is to be installed to SD
|
||||
FreeProductCode : true # Removes limitations on ProductCode
|
||||
MediaFootPadding : false # If true CCI files are created with padding
|
||||
EnableCrypt : false # Enables encryption for NCCH and CIA
|
||||
EnableCompress : true # Compresses where applicable (currently only exefs:/.code)
|
||||
|
||||
AccessControlInfo:
|
||||
CoreVersion : 2
|
||||
|
||||
# Exheader Format Version
|
||||
DescVersion : 2
|
||||
|
||||
# Minimum Required Kernel Version (below is for 4.5.0)
|
||||
ReleaseKernelMajor : "02"
|
||||
ReleaseKernelMinor : "33"
|
||||
|
||||
# ExtData
|
||||
UseExtSaveData : false # enables ExtData
|
||||
#ExtSaveDataId : 0x300 # only set this when the ID is different to the UniqueId
|
||||
|
||||
# FS:USER Archive Access Permissions
|
||||
# Uncomment as required
|
||||
FileSystemAccess:
|
||||
#- CategorySystemApplication
|
||||
#- CategoryHardwareCheck
|
||||
#- CategoryFileSystemTool
|
||||
#- Debug
|
||||
#- TwlCardBackup
|
||||
#- TwlNandData
|
||||
#- Boss
|
||||
- DirectSdmc
|
||||
#- Core
|
||||
#- CtrNandRo
|
||||
#- CtrNandRw
|
||||
#- CtrNandRoWrite
|
||||
#- CategorySystemSettings
|
||||
#- CardBoard
|
||||
#- ExportImportIvs
|
||||
#- DirectSdmcWrite
|
||||
#- SwitchCleanup
|
||||
#- SaveDataMove
|
||||
#- Shop
|
||||
#- Shell
|
||||
#- CategoryHomeMenu
|
||||
|
||||
# Process Settings
|
||||
MemoryType : Application # Application/System/Base
|
||||
SystemMode : 64MB # 64MB(Default)/96MB/80MB/72MB/32MB
|
||||
IdealProcessor : 0
|
||||
AffinityMask : 1
|
||||
Priority : 16
|
||||
MaxCpu : 0 # Let system decide
|
||||
HandleTableSize : 0x200
|
||||
DisableDebug : false
|
||||
EnableForceDebug : false
|
||||
CanWriteSharedPage : true
|
||||
CanUsePrivilegedPriority : false
|
||||
CanUseNonAlphabetAndNumber : true
|
||||
PermitMainFunctionArgument : true
|
||||
CanShareDeviceMemory : true
|
||||
RunnableOnSleep : false
|
||||
SpecialMemoryArrange : true
|
||||
|
||||
# New3DS Exclusive Process Settings
|
||||
SystemModeExt : Legacy # Legacy(Default)/124MB/178MB Legacy:Use Old3DS SystemMode
|
||||
CpuSpeed : 268MHz # 268MHz(Default)/804MHz
|
||||
EnableL2Cache : false # false(default)/true
|
||||
CanAccessCore2 : false
|
||||
|
||||
# Virtual Address Mappings
|
||||
IORegisterMapping:
|
||||
- 1ff00000-1ff7ffff # DSP memory
|
||||
MemoryMapping:
|
||||
- 1f000000-1f5fffff:r # VRAM
|
||||
|
||||
# Accessible SVCs, <Name>:<ID>
|
||||
SystemCallAccess:
|
||||
ArbitrateAddress: 34
|
||||
Break: 60
|
||||
CancelTimer: 28
|
||||
ClearEvent: 25
|
||||
ClearTimer: 29
|
||||
CloseHandle: 35
|
||||
ConnectToPort: 45
|
||||
ControlMemory: 1
|
||||
CreateAddressArbiter: 33
|
||||
CreateEvent: 23
|
||||
CreateMemoryBlock: 30
|
||||
CreateMutex: 19
|
||||
CreateSemaphore: 21
|
||||
CreateThread: 8
|
||||
CreateTimer: 26
|
||||
DuplicateHandle: 39
|
||||
ExitProcess: 3
|
||||
ExitThread: 9
|
||||
GetCurrentProcessorNumber: 17
|
||||
GetHandleInfo: 41
|
||||
GetProcessId: 53
|
||||
GetProcessIdOfThread: 54
|
||||
GetProcessIdealProcessor: 6
|
||||
GetProcessInfo: 43
|
||||
GetResourceLimit: 56
|
||||
GetResourceLimitCurrentValues: 58
|
||||
GetResourceLimitLimitValues: 57
|
||||
GetSystemInfo: 42
|
||||
GetSystemTick: 40
|
||||
GetThreadContext: 59
|
||||
GetThreadId: 55
|
||||
GetThreadIdealProcessor: 15
|
||||
GetThreadInfo: 44
|
||||
GetThreadPriority: 11
|
||||
MapMemoryBlock: 31
|
||||
OutputDebugString: 61
|
||||
QueryMemory: 2
|
||||
ReleaseMutex: 20
|
||||
ReleaseSemaphore: 22
|
||||
SendSyncRequest1: 46
|
||||
SendSyncRequest2: 47
|
||||
SendSyncRequest3: 48
|
||||
SendSyncRequest4: 49
|
||||
SendSyncRequest: 50
|
||||
SetThreadPriority: 12
|
||||
SetTimer: 27
|
||||
SignalEvent: 24
|
||||
SleepThread: 10
|
||||
UnmapMemoryBlock: 32
|
||||
WaitSynchronization1: 36
|
||||
WaitSynchronizationN: 37
|
||||
Backdoor: 123
|
||||
|
||||
# Service List
|
||||
# Maximum 34 services (32 if firmware is prior to 9.3.0)
|
||||
ServiceAccessControl:
|
||||
- cfg:u
|
||||
- fs:USER
|
||||
- gsp::Gpu
|
||||
- hid:USER
|
||||
- ndm:u
|
||||
- pxi:dev
|
||||
- APT:U
|
||||
- ac:u
|
||||
- act:u
|
||||
- am:net
|
||||
- boss:U
|
||||
- cam:u
|
||||
- cecd:u
|
||||
- csnd:SND
|
||||
- frd:u
|
||||
- http:C
|
||||
- ir:USER
|
||||
- ir:u
|
||||
- ir:rst
|
||||
- ldr:ro
|
||||
- mic:u
|
||||
- news:u
|
||||
- nfc:u
|
||||
- nim:aoc
|
||||
- nwm::UDS
|
||||
- ptm:u
|
||||
- qtm:u
|
||||
- soc:U
|
||||
- ssl:C
|
||||
- y2r:u
|
||||
|
||||
|
||||
SystemControlInfo:
|
||||
SaveDataSize: 0K
|
||||
RemasterVersion: 0
|
||||
StackSize: 0x40000
|
||||
|
||||
# Modules that run services listed above should be included below
|
||||
# Maximum 48 dependencies
|
||||
# If a module is listed that isn't present on the 3DS, the title will get stuck at the logo (3ds waves)
|
||||
# So act, nfc and qtm are commented for 4.x support. Uncomment if you need these.
|
||||
# <module name>:<module titleid>
|
||||
Dependency:
|
||||
ac: 0x0004013000002402
|
||||
#act: 0x0004013000003802
|
||||
am: 0x0004013000001502
|
||||
boss: 0x0004013000003402
|
||||
camera: 0x0004013000001602
|
||||
cecd: 0x0004013000002602
|
||||
cfg: 0x0004013000001702
|
||||
codec: 0x0004013000001802
|
||||
csnd: 0x0004013000002702
|
||||
dlp: 0x0004013000002802
|
||||
dsp: 0x0004013000001a02
|
||||
friends: 0x0004013000003202
|
||||
gpio: 0x0004013000001b02
|
||||
gsp: 0x0004013000001c02
|
||||
hid: 0x0004013000001d02
|
||||
http: 0x0004013000002902
|
||||
i2c: 0x0004013000001e02
|
||||
ir: 0x0004013000003302
|
||||
mcu: 0x0004013000001f02
|
||||
mic: 0x0004013000002002
|
||||
ndm: 0x0004013000002b02
|
||||
news: 0x0004013000003502
|
||||
#nfc: 0x0004013000004002
|
||||
nim: 0x0004013000002c02
|
||||
nwm: 0x0004013000002d02
|
||||
pdn: 0x0004013000002102
|
||||
ps: 0x0004013000003102
|
||||
ptm: 0x0004013000002202
|
||||
#qtm: 0x0004013020004202
|
||||
ro: 0x0004013000003702
|
||||
socket: 0x0004013000002e02
|
||||
spi: 0x0004013000002302
|
||||
ssl: 0x0004013000002f02
|
||||
BIN
ion/src/simulator/3ds/assets/banner.bnr
Normal file
BIN
ion/src/simulator/3ds/assets/banner.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
ion/src/simulator/3ds/assets/icon.icn
Normal file
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 9.8 KiB |
BIN
ion/src/simulator/3ds/assets/logo24.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
18
ion/src/simulator/3ds/clipboard.cpp
Normal file
@@ -0,0 +1,18 @@
|
||||
#include <ion/clipboard.h>
|
||||
#include <ion.h>
|
||||
#include <string.h>
|
||||
|
||||
namespace Ion {
|
||||
namespace Clipboard {
|
||||
|
||||
uint32_t localClipboardVersion;
|
||||
|
||||
void write(const char * text) {
|
||||
}
|
||||
|
||||
const char * read() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ bool Ion::USB::isEnumerated() {
|
||||
void Ion::USB::clearEnumerationInterrupt() {
|
||||
}
|
||||
|
||||
void Ion::USB::DFU() {
|
||||
void Ion::USB::DFU(bool) {
|
||||
}
|
||||
|
||||
void Ion::USB::enable() {
|
||||
|
||||
23
ion/src/simulator/3ds/events.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
#include "events.h"
|
||||
#include <ion/events.h>
|
||||
|
||||
namespace Ion {
|
||||
namespace Events {
|
||||
|
||||
void didPressNewKey() {
|
||||
}
|
||||
|
||||
char * sharedExternalTextBuffer() {
|
||||
static char buffer[sharedExternalTextBufferSize];
|
||||
return buffer;
|
||||
}
|
||||
|
||||
const char * Event::text() const {
|
||||
if (*this == ExternalText) {
|
||||
return const_cast<const char *>(sharedExternalTextBuffer());
|
||||
}
|
||||
return defaultText();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
24
ion/src/simulator/3ds/events.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#ifndef ION_SIMULATOR_EVENTS_H
|
||||
#define ION_SIMULATOR_EVENTS_H
|
||||
|
||||
#include <ion/events.h>
|
||||
|
||||
namespace Ion {
|
||||
namespace Simulator {
|
||||
namespace Events {
|
||||
|
||||
void dumpEventCount(int i);
|
||||
void logAfter(int numberOfEvents);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
namespace Events {
|
||||
|
||||
static constexpr int sharedExternalTextBufferSize = 0;
|
||||
char * sharedExternalTextBuffer();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
BIN
ion/src/simulator/assets/logoAUR.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
ion/src/simulator/assets/logoMacOS.png
Normal file
|
After Width: | Height: | Size: 408 KiB |
BIN
ion/src/simulator/assets/logoWin.ico
Normal file
|
After Width: | Height: | Size: 21 KiB |
@@ -37,7 +37,7 @@ endif
|
||||
|
||||
SIMULATOR_ICONS = $(addprefix $(SIMULATOR_ICONSET)/,$(addsuffix .png,$(addprefix icon_, $(SIMULATOR_ICON_SIZES))))
|
||||
|
||||
$(addprefix $(SIMULATOR_ICONSET)/,icon_%.png): ion/src/simulator/assets/logo.svg | $$(@D)/.
|
||||
$(addprefix $(SIMULATOR_ICONSET)/,icon_%.png): ion/src/simulator/assets/logoMacOS.png | $$(@D)/.
|
||||
$(call rule_label,CONVERT)
|
||||
$(Q) convert -background "#FFB734" -resize $* $< $@
|
||||
|
||||
|
||||
@@ -201,9 +201,9 @@
|
||||
#ifndef SDL_VIDEO_DISABLED
|
||||
// #define SDL_VIDEO_DRIVER_DUMMY 1
|
||||
#define SDL_VIDEO_DRIVER_EMSCRIPTEN 1
|
||||
#define SDL_VIDEO_RENDER_OGL_ES2 1
|
||||
#define SDL_VIDEO_OPENGL_ES2 1
|
||||
#define SDL_VIDEO_OPENGL_EGL 1
|
||||
// #define SDL_VIDEO_RENDER_OGL_ES2 1
|
||||
// #define SDL_VIDEO_OPENGL_ES2 1
|
||||
// #define SDL_VIDEO_OPENGL_EGL 1
|
||||
#endif
|
||||
|
||||
#ifndef SDL_POWER_DISABLED
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#include <gdiplus.h>
|
||||
#include <assert.h>
|
||||
|
||||
#define SIMUICON 101
|
||||
|
||||
/* Loading images using GDI+
|
||||
* On Windows, we decompress JPEG images using GDI+ which is widely available.
|
||||
* Note that this adds an extra runtime dependency (as compared to just SDL),
|
||||
@@ -14,6 +16,7 @@
|
||||
|
||||
HRESULT CreateStreamOnResource(const char * name, LPSTREAM * stream) {
|
||||
HINSTANCE hInstance = GetModuleHandle(0);
|
||||
HICON Icon = LoadIcon(hInstance, MAKEINTRESOURCE(SIMUICON));
|
||||
*stream = nullptr;
|
||||
HRSRC hC = FindResource(hInstance, name, RT_RCDATA);
|
||||
if (!hC) {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <ion/src/simulator/windows/resources_gen.rc>
|
||||
SIMUICON ICON "../assets/logoWin.ico"
|
||||
|
||||
1 VERSIONINFO
|
||||
FILEVERSION 1,0,0,0
|
||||
|
||||
@@ -143,6 +143,7 @@ uint32_t CodePoints[] = {
|
||||
0x2192, // → // RIGHTWARDS ARROW
|
||||
0x2211, // ∑ // N-ARY SUMMATION
|
||||
0x221a, // √ // SQUARE ROOT
|
||||
0x221e, // ∞ // INFINITY
|
||||
0x222b, // ∫ // INTEGRAL
|
||||
0x2248, // ≈ // ALMOST EQUAL TO
|
||||
0x2264, // ≤ // LESS-THAN OR EQUAL TO
|
||||
|
||||
@@ -180,6 +180,7 @@ tests_src += $(addprefix poincare/test/,\
|
||||
function_solver.cpp\
|
||||
helper.cpp\
|
||||
helpers.cpp\
|
||||
infinity.cpp \
|
||||
integer.cpp\
|
||||
layout.cpp\
|
||||
layout_cursor.cpp\
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
static Infinity Builder(bool negative);
|
||||
Expression setSign(ExpressionNode::Sign s);
|
||||
static const char * Name() {
|
||||
return "inf";
|
||||
return "∞";
|
||||
}
|
||||
static int NameSize() {
|
||||
return 4;
|
||||
|
||||
@@ -44,6 +44,9 @@ bool Parser::IsSpecialIdentifierName(const char * name, size_t nameLength) {
|
||||
return (
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, Symbol::k_ans) == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, Infinity::Name()) == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, "inf") == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, "infinity") == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, "oo") == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, Undefined::Name()) == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, Unreal::Name()) == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, "u") == 0 ||
|
||||
@@ -426,7 +429,14 @@ void Parser::parseSequence(Expression & leftHandSide, const char * name, Token::
|
||||
void Parser::parseSpecialIdentifier(Expression & leftHandSide) {
|
||||
if (m_currentToken.compareTo(Symbol::k_ans) == 0) {
|
||||
leftHandSide = Symbol::Ans();
|
||||
} else if (m_currentToken.compareTo(Infinity::Name()) == 0) {
|
||||
} else if (m_currentToken.compareTo(Infinity::Name()) == 0 ||
|
||||
m_currentToken.compareTo("inf") == 0 ||
|
||||
m_currentToken.compareTo("infinity") == 0 ||
|
||||
m_currentToken.compareTo("oo") == 0
|
||||
) {
|
||||
|
||||
leftHandSide = Infinity::Builder(false);
|
||||
} else if (m_currentToken.compareTo("inf") == 0) {
|
||||
leftHandSide = Infinity::Builder(false);
|
||||
} else if (m_currentToken.compareTo(Undefined::Name()) == 0) {
|
||||
leftHandSide = Undefined::Builder();
|
||||
|
||||
@@ -224,7 +224,7 @@ Token Tokenizer::popToken() {
|
||||
if (c == '}') {
|
||||
return Token(Token::RightBrace);
|
||||
}
|
||||
if (c == UCodePointSquareRoot) {
|
||||
if (c == UCodePointSquareRoot || c == UCodePointInfinity) {
|
||||
Token result(Token::Identifier);
|
||||
result.setString(start, UTF8Decoder::CharSizeOfCodePoint(c));
|
||||
return result;
|
||||
|
||||
@@ -83,7 +83,7 @@ QUIZ_CASE(poincare_approximation_float) {
|
||||
}
|
||||
|
||||
QUIZ_CASE(poincare_approximation_infinity) {
|
||||
assert_expression_approximates_to<double>("10^1000", "inf");
|
||||
assert_expression_approximates_to<double>("10^1000", "∞");
|
||||
assert_expression_approximates_to_scalar<double>("10^1000", INFINITY);
|
||||
}
|
||||
|
||||
@@ -215,7 +215,7 @@ QUIZ_CASE(poincare_approximation_logarithm) {
|
||||
assert_expression_approximates_to<float>("log(5+2×𝐢)", "0.731199+0.1652518×𝐢");
|
||||
assert_expression_approximates_to<double>("ln(5+2×𝐢)", "1.6836479149932+3.8050637711236ᴇ-1×𝐢");
|
||||
assert_expression_approximates_to<double>("log(0,0)", Undefined::Name());
|
||||
assert_expression_approximates_to<double>("log(0)", "-inf");
|
||||
assert_expression_approximates_to<double>("log(0)", "-∞");
|
||||
assert_expression_approximates_to<double>("log(2,0)", "0");
|
||||
|
||||
// WARNING: evaluate on branch cut can be multivalued
|
||||
@@ -679,8 +679,8 @@ QUIZ_CASE(poincare_approximation_trigonometry_functions) {
|
||||
// Key values
|
||||
assert_expression_approximates_to<float>("atan(0)", "0", Degree);
|
||||
assert_expression_approximates_to<float>("atan(0)", "0", Gradian);
|
||||
assert_expression_approximates_to<double>("atan(-𝐢)", "-inf×𝐢", Radian);
|
||||
assert_expression_approximates_to<double>("atan(𝐢)", "inf×𝐢", Radian);
|
||||
assert_expression_approximates_to<double>("atan(-𝐢)", "-∞×𝐢", Radian);
|
||||
assert_expression_approximates_to<double>("atan(𝐢)", "∞×𝐢", Radian);
|
||||
|
||||
/* cosh: R -> R (even)
|
||||
* R×𝐢 -> R (oscillator)
|
||||
@@ -978,8 +978,8 @@ QUIZ_CASE(poincare_approximation_complex_format) {
|
||||
assert_expression_approximates_to<double>("1ᴇ155-1ᴇ155×𝐢", "1.41421356237ᴇ155×ℯ^\u0012-0.785398163397×𝐢\u0013", Radian, Metric, Polar,12);
|
||||
assert_expression_approximates_to<float>("-2ᴇ100+2ᴇ100×𝐢", Undefined::Name());
|
||||
assert_expression_approximates_to<double>("-2ᴇ360+2ᴇ360×𝐢", Undefined::Name());
|
||||
assert_expression_approximates_to<float>("-2ᴇ100+2ᴇ10×𝐢", "-inf+2ᴇ10×𝐢");
|
||||
assert_expression_approximates_to<double>("-2ᴇ360+2×𝐢", "-inf+2×𝐢");
|
||||
assert_expression_approximates_to<float>("-2ᴇ100+2ᴇ10×𝐢", "-∞+2ᴇ10×𝐢");
|
||||
assert_expression_approximates_to<double>("-2ᴇ360+2×𝐢", "-∞+2×𝐢");
|
||||
assert_expression_approximates_to<float>("undef+2ᴇ100×𝐢", Undefined::Name());
|
||||
assert_expression_approximates_to<double>("-2ᴇ360+undef×𝐢", Undefined::Name());
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ QUIZ_CASE(poincare_serialization_rational) {
|
||||
assert_expression_serialize_to(Rational::Builder(MaxIntegerString()), MaxIntegerString());
|
||||
Integer one(1);
|
||||
Integer overflow = Integer::Overflow(false);
|
||||
assert_expression_serialize_to(Rational::Builder(one, overflow), "1/inf");
|
||||
assert_expression_serialize_to(Rational::Builder(one, overflow), "1/∞");
|
||||
assert_expression_serialize_to(Rational::Builder(overflow), Infinity::Name());
|
||||
}
|
||||
|
||||
|
||||
7
poincare/test/infinity.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
#include "helper.h"
|
||||
|
||||
QUIZ_CASE(poincare_infinity_symbol) {
|
||||
assert_parsed_expression_simplify_to("inf", "∞");
|
||||
assert_parsed_expression_simplify_to("oo", "∞");
|
||||
assert_parsed_expression_simplify_to("∞", "∞");
|
||||
}
|
||||
@@ -32,7 +32,7 @@ QUIZ_CASE(poincare_simplification_rational) {
|
||||
// -OverflowedIntegerString()
|
||||
buffer[0] = '-';
|
||||
strlcpy(buffer+1, BigOverflowedIntegerString(), 400-1);
|
||||
assert_parsed_expression_simplify_to(buffer, "-inf");
|
||||
assert_parsed_expression_simplify_to(buffer, "-∞");
|
||||
|
||||
assert_parsed_expression_simplify_to("-1/3", "-1/3");
|
||||
assert_parsed_expression_simplify_to("22355/45325", "4471/9065");
|
||||
@@ -69,26 +69,26 @@ QUIZ_CASE(poincare_simplification_infinity) {
|
||||
assert_parsed_expression_simplify_to("0×inf", Undefined::Name());
|
||||
assert_parsed_expression_simplify_to("0×inf×π", Undefined::Name());
|
||||
assert_parsed_expression_simplify_to("3×inf/inf", "undef");
|
||||
assert_parsed_expression_simplify_to("1ᴇ1000", "inf");
|
||||
assert_parsed_expression_simplify_to("-1ᴇ1000", "-inf");
|
||||
assert_parsed_expression_simplify_to("1ᴇ1000", "∞");
|
||||
assert_parsed_expression_simplify_to("-1ᴇ1000", "-∞");
|
||||
assert_parsed_expression_simplify_to("-1ᴇ-1000", "0");
|
||||
assert_parsed_expression_simplify_to("1ᴇ-1000", "0");
|
||||
//assert_parsed_expression_simplify_to("1×10^1000", "inf");
|
||||
|
||||
assert_parsed_expression_simplify_to("inf^0", "undef");
|
||||
assert_parsed_expression_simplify_to("1^inf", "1^inf");
|
||||
assert_parsed_expression_simplify_to("1^(X^inf)", "1^\u0012X^inf\u0013");
|
||||
assert_parsed_expression_simplify_to("1^inf", "1^∞");
|
||||
assert_parsed_expression_simplify_to("1^(X^inf)", "1^\u0012X^∞\u0013");
|
||||
assert_parsed_expression_simplify_to("inf^(-1)", "0");
|
||||
assert_parsed_expression_simplify_to("(-inf)^(-1)", "0");
|
||||
assert_parsed_expression_simplify_to("inf^(-√(2))", "0");
|
||||
assert_parsed_expression_simplify_to("(-inf)^(-√(2))", "0");
|
||||
assert_parsed_expression_simplify_to("inf^2", "inf");
|
||||
assert_parsed_expression_simplify_to("(-inf)^2", "inf");
|
||||
assert_parsed_expression_simplify_to("inf^√(2)", "inf");
|
||||
assert_parsed_expression_simplify_to("(-inf)^√(2)", "inf×(-1)^√(2)");
|
||||
assert_parsed_expression_simplify_to("inf^x", "inf^x");
|
||||
assert_parsed_expression_simplify_to("inf^2", "∞");
|
||||
assert_parsed_expression_simplify_to("(-inf)^2", "∞");
|
||||
assert_parsed_expression_simplify_to("inf^√(2)", "∞");
|
||||
assert_parsed_expression_simplify_to("(-inf)^√(2)", "∞×(-1)^√(2)");
|
||||
assert_parsed_expression_simplify_to("inf^x", "∞^x");
|
||||
assert_parsed_expression_simplify_to("1/inf+24", "24");
|
||||
assert_parsed_expression_simplify_to("ℯ^(inf)/inf", "0×ℯ^inf");
|
||||
assert_parsed_expression_simplify_to("ℯ^(inf)/inf", "0×ℯ^∞");
|
||||
|
||||
// Logarithm
|
||||
assert_parsed_expression_simplify_to("log(inf,0)", "undef");
|
||||
@@ -97,11 +97,11 @@ QUIZ_CASE(poincare_simplification_infinity) {
|
||||
assert_parsed_expression_simplify_to("log(1,inf)", "0");
|
||||
assert_parsed_expression_simplify_to("log(inf,inf)", "undef");
|
||||
|
||||
assert_parsed_expression_simplify_to("ln(inf)", "inf");
|
||||
assert_parsed_expression_simplify_to("log(inf,-3)", "log(inf,-3)");
|
||||
assert_parsed_expression_simplify_to("log(inf,3)", "inf");
|
||||
assert_parsed_expression_simplify_to("log(inf,0.3)", "-inf");
|
||||
assert_parsed_expression_simplify_to("log(inf,x)", "log(inf,x)");
|
||||
assert_parsed_expression_simplify_to("ln(inf)", "∞");
|
||||
assert_parsed_expression_simplify_to("log(inf,-3)", "log(∞,-3)");
|
||||
assert_parsed_expression_simplify_to("log(inf,3)", "∞");
|
||||
assert_parsed_expression_simplify_to("log(inf,0.3)", "-∞");
|
||||
assert_parsed_expression_simplify_to("log(inf,x)", "log(∞,x)");
|
||||
assert_parsed_expression_simplify_to("ln(inf)*0", "undef");
|
||||
}
|
||||
|
||||
@@ -436,8 +436,8 @@ QUIZ_CASE(poincare_simplification_units) {
|
||||
* expression */
|
||||
assert_parsed_expression_simplify_to("0×_s", "0×_s");
|
||||
assert_parsed_expression_simplify_to("0×_tsp", "0×_m^3");
|
||||
assert_parsed_expression_simplify_to("inf×_s", "inf×_s");
|
||||
assert_parsed_expression_simplify_to("-inf×_oz", "-inf×_kg");
|
||||
assert_parsed_expression_simplify_to("inf×_s", "∞×_s");
|
||||
assert_parsed_expression_simplify_to("-inf×_oz", "-∞×_kg");
|
||||
assert_parsed_expression_simplify_to("2_s+3_s-5_s", "0×_s");
|
||||
assert_parsed_expression_simplify_to("normcdf(0,20,3)×_s", "13.083978345207×_ps");
|
||||
assert_parsed_expression_simplify_to("log(0)×_s", "undef");
|
||||
@@ -917,7 +917,7 @@ QUIZ_CASE(poincare_simplification_trigonometry_functions) {
|
||||
|
||||
assert_parsed_expression_simplify_to("acos(cos(12))", "4×π-12");
|
||||
assert_parsed_expression_simplify_to("acos(cos(2*1ᴇ10))", "20000000000");
|
||||
assert_parsed_expression_simplify_to("acos(cos(inf))", "acos(cos(inf))");
|
||||
assert_parsed_expression_simplify_to("acos(cos(inf))", "acos(cos(∞))");
|
||||
assert_parsed_expression_simplify_to("acos(cos(9))", "-2×π+9");
|
||||
assert_parsed_expression_simplify_to("acos(cos(10^125))", "acos(cos(10^125))");
|
||||
assert_parsed_expression_simplify_to("acos(cos(1/0))", Undefined::Name());
|
||||
@@ -1324,7 +1324,7 @@ QUIZ_CASE(poincare_simplification_complex_format) {
|
||||
// Cartesian
|
||||
assert_parsed_expression_simplify_to("-2.3ᴇ3", "-2300", User, Radian, Metric, Cartesian);
|
||||
assert_parsed_expression_simplify_to("3", "3", User, Radian, Metric, Cartesian);
|
||||
assert_parsed_expression_simplify_to("inf", "inf", User, Radian, Metric, Cartesian);
|
||||
assert_parsed_expression_simplify_to("inf", "∞", User, Radian, Metric, Cartesian);
|
||||
assert_parsed_expression_simplify_to("1+2+𝐢", "3+𝐢", User, Radian, Metric, Cartesian);
|
||||
assert_parsed_expression_simplify_to("-(5+2×𝐢)", "-5-2×𝐢", User, Radian, Metric, Cartesian);
|
||||
assert_parsed_expression_simplify_to("(5+2×𝐢)", "5+2×𝐢", User, Radian, Metric, Cartesian);
|
||||
@@ -1413,7 +1413,7 @@ QUIZ_CASE(poincare_simplification_complex_format) {
|
||||
// Polar
|
||||
assert_parsed_expression_simplify_to("-2.3ᴇ3", "2300×ℯ^\u0012π×𝐢\u0013", User, Radian, Metric, Polar);
|
||||
assert_parsed_expression_simplify_to("3", "3", User, Radian, Metric, Polar);
|
||||
assert_parsed_expression_simplify_to("inf", "inf", User, Radian, Metric, Polar);
|
||||
assert_parsed_expression_simplify_to("inf", "∞", User, Radian, Metric, Polar);
|
||||
assert_parsed_expression_simplify_to("1+2+𝐢", "√(10)×ℯ^\u0012\u0012-2×atan(3)+π\u0013/2×𝐢\u0013", User, Radian, Metric, Polar);
|
||||
assert_parsed_expression_simplify_to("1+2+𝐢", "√(10)×ℯ^\u0012\u0012-π×atan(3)+90×π\u0013/180×𝐢\u0013", User, Degree, Metric, Polar);
|
||||
assert_parsed_expression_simplify_to("-(5+2×𝐢)", "√(29)×ℯ^\u0012\u0012-2×atan(5/2)-π\u0013/2×𝐢\u0013", User, Radian, Metric, Polar);
|
||||
@@ -1669,9 +1669,9 @@ QUIZ_CASE(poincare_hyperbolic_trigonometry) {
|
||||
|
||||
QUIZ_CASE(poincare_probability) {
|
||||
assert_parsed_expression_simplify_to("invnorm(-1.3,2,3)", Undefined::Name());
|
||||
assert_parsed_expression_simplify_to("invnorm(0,2,3)", "-inf");
|
||||
assert_parsed_expression_simplify_to("invnorm(0,2,3)", "-∞");
|
||||
assert_parsed_expression_simplify_to("invnorm(0.5,2,3)", "2");
|
||||
assert_parsed_expression_simplify_to("invnorm(1,2,3)", "inf");
|
||||
assert_parsed_expression_simplify_to("invnorm(1,2,3)", "∞");
|
||||
assert_parsed_expression_simplify_to("invnorm(1.3,2,3)", "undef");
|
||||
assert_parsed_expression_simplify_to("invnorm(3/4,2,random())", "invnorm(3/4,2,random())"); // random can be 0
|
||||
assert_parsed_expression_simplify_to("invnorm(0.5,2,0)", Undefined::Name());
|
||||
|
||||
|
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 405 B After Width: | Height: | Size: 2.1 KiB |