[表紙へ]
▼ 変更履歴

電卓ベンチマーク01(三角関数を含んだ式の総和)

The expression of sum01

各電卓で上式の計算を行い、その計算にかかる時間を測定しました。
nの値は、102, 103, 104, 105 の4つです。それぞれの値で測定を行いました。

総和の計算は、加算を繰り返しているだけなので、電卓の演算速度を比較的素直に表していると考えられます。

目次

  1. 数式の意味
  2. 測定方法
  3. CAS搭載電卓の測定について
  4. SwissMicros DM42 の総和計算
  5. 測定結果
  6. 測定して気がついたこと

数式の意味

▲先頭へ戻る

測定方法

▲先頭へ戻る

CAS搭載電卓の測定について

CAS(数式処理システム)搭載電卓は通常操作において、超越関数や数学定数(π,eなど)を数値化しません。そのため、特殊な操作をしたり、設定を変更する必要があります。

▲先頭へ戻る

SwissMicros DM42 の総和計算

SwissMicros DM42 は、「統計の総和」はあるのですが、「数式の総和」を計算する機能はないようです。
そのため、数式の総和を求めるにはプログラムを組むしかありません。
しかし、他の機種と公平な比較にはならないかもしれませんので、参考までにして下さい。

今回は以下の「プログラム BM01」を使いました。
「プログラム BM01」は、数式をそのままプログラミングしたような感じですので、効率は追求していません。
[XEQ] [BM01] と押して実行すると、"N?" と表示されますので、n の値を入れてから [R/S] キーを押すと計算が始まります。

▼ プログラム BM01(押すとコードが表示されます)

効率を良くした「プログラム BM01X」も作りました。
ベンチマークの数式と違って、変数 X を使わず、変数 N をデクリメントしながら計算します。

▼ プログラム BM01X(押すとコードが表示されます)

「プログラム BM01X」の方が「プログラム BM01」よりも 10% ほど高速ですが、今回は使いませんでした。
このベンチマークの数式に特化しているので、変更容易性が悪いのです。例えば、x の初期値を 0 以外にすることができません。
ここまで特化したプログラムを性能試験に使うと DM42 がかなり有利なので、やめておきました。

DM42 は電池動作時とUSB給電時で CPU のクロック周波数が変化します。
電池動作時は 24MHz、USB給電時は 80MHz になります。それぞれのクロック周波数に対して測定を行なっています。

▲先頭へ戻る

測定結果

参考値としてwxMaxima(PC用数式処理ソフト)の計算結果(16桁)を使っています。参考値がどの桁まで正確なのかよく分かりませんが、ここで扱う電卓よりも高精度なのは間違いないと思われます。

参考値と異なる計算結果の一部は赤字にします。四捨五入を考慮して赤字にします。
例えば、参考値が1.235のとき、計算結果が1.23ならば、1.23として、3を誤りとします。この場合、四捨五入を考慮して1.24が正解とします。


n = 102

参考値(wxMaximaによる): 4941.829140522997

機種名 種別 ファームウェア
バージョン
計算結果(桁数) 計算時間 備考
HP Prime (Home表示) グラフ電卓(CAS有) 2.0.0.13865 4941.82914054(12桁) 1秒未満 Home表示=CASなしモード
HP Prime (CAS表示) グラフ電卓(CAS有) 2.0.0.13865 4941.82914052(12桁) 1秒未満 Exact:OFF,Complex:OFF
SwissMicros DM42 (USB給電) 関数電卓 3.11 4941.82914052(12桁) 1秒未満 プログラムによる参考測定。表示設定 FIX 11
TI-Nspire CX CAS グラフ電卓(CAS有) 4.3.0.702 4941.82914052(12桁) 1秒未満 Calculation Mode:Auto, 最大12桁表示に設定
SwissMicros DM42 (電池動作) 関数電卓 3.11 4941.82914052(12桁) 1秒未満 プログラムによる参考測定。表示設定 FIX 11
CASIO fx-CG50 グラフ電卓(CAS無) 03.10.0212 4941.829141(10桁) 1秒未満
CASIO fx-CG10 グラフ電卓(CAS無) 02.02.3211 4941.829141(10桁) 1秒 fx-CG20同等品
CASIO fx-9750GII グラフ電卓(CAS無) 02.04.0701 4941.829141(10桁) 1秒
CASIO fx-9860GII グラフ電卓(CAS無) 02.09.0201 4941.829141(10桁) 2秒
TI-84 Plus CE グラフ電卓(CAS無) 5.2.2.0043 4941.829141(10桁) 3秒
HP 50g グラフ電卓(CAS有) 2.15 4941.82914054(12桁) 3秒 Approx:ON,Complex:OFF
TI-89 Titanium グラフ電卓(CAS有) 3.10 4941.82914052(12桁) 5秒 Exact/Approx:AUTO,最大12桁表示に設定
CASIO fx-JP900 関数電卓 CY-243 VerA 4941.829141(10桁) 7秒
TI-36X Pro 関数電卓 不明 4941.829141(10桁) 9秒
SHARP EL-5160J-X 関数電卓 不明 4941.829141(10桁) 22秒
SHARP EL-509T-AX 関数電卓 不明 4941.829141(10桁) 24秒
Canon F-789SG 関数電卓 不明 4941.829141(10桁) 33秒
CASIO fx-915ES 関数電卓 LY718X VerB 4941.829141(10桁) 34秒
CASIO fx-375ES 関数電卓 LY717X VerA 4941.829141(10桁) 34秒

▲先頭へ戻る

n = 103

参考値(wxMaximaによる): 501437.135119937

機種名 種別 ファームウェア
バージョン
計算結果(桁数) 計算時間 備考
HP Prime (Home表示) グラフ電卓(CAS有) 2.0.0.13865 501437.135123(12桁) 1秒未満 Home表示=CASなしモード
HP Prime (CAS表示) グラフ電卓(CAS有) 2.0.0.13865 501437.13512(11桁) 1秒未満 Exact:OFF,Complex:OFF
SwissMicros DM42 (USB給電) 関数電卓 3.11 501437.135120(12桁) 1秒 プログラムによる参考測定。表示設定 FIX 11
TI-Nspire CX CAS グラフ電卓(CAS有) 4.3.0.702 501437.13512(11桁) 1秒 Calculation Mode:Auto, 最大12桁表示に設定
SwissMicros DM42 (電池動作) 関数電卓 3.11 501437.135120(12桁) 4秒 プログラムによる参考測定。表示設定 FIX 11
CASIO fx-CG50 グラフ電卓(CAS無) 03.10.0212 501437.1351(10桁) 6秒
CASIO fx-CG10 グラフ電卓(CAS無) 02.02.3211 501437.1351(10桁) 10秒 fx-CG20同等品
CASIO fx-9750GII グラフ電卓(CAS無) 02.04.0701 501437.1351(10桁) 12秒
CASIO fx-9860GII グラフ電卓(CAS無) 02.09.0201 501437.1351(10桁) 13秒
TI-84 Plus CE グラフ電卓(CAS無) 5.2.2.0043 501437.1351(10桁) 25秒
HP 50g グラフ電卓(CAS有) 2.15 501437.135123(12桁) 31秒 Approx:ON,Complex:OFF
TI-89 Titanium グラフ電卓(CAS有) 3.10 501437.13512(11桁) 45秒 Exact/Approx:AUTO,最大12桁表示に設定
CASIO fx-JP900 関数電卓 CY-243 VerA 501437.1351(10桁) 1分9秒
TI-36X Pro 関数電卓 不明 501437.1351(10桁) 1分31秒
SHARP EL-5160J-X 関数電卓 不明 501437.1351(10桁) 3分44秒
SHARP EL-509T-AX 関数電卓 不明 501437.1351(10桁) 3分59秒
Canon F-789SG 関数電卓 不明 501437.1351(10桁) 5分24秒
CASIO fx-915ES 関数電卓 LY718X VerB 501437.1351(10桁) 5分38秒
CASIO fx-375ES 関数電卓 LY717X VerA 501437.1351(10桁) 5分39秒

▲先頭へ戻る

n = 104

参考値(wxMaximaによる): 50004626.12212456

機種名 種別 ファームウェア
バージョン
計算結果(桁数) 計算時間 備考
HP Prime (Home表示) グラフ電卓(CAS有) 2.0.0.13865 50004626.1234(12桁) 2秒 Home表示=CASなしモード
HP Prime (CAS表示) グラフ電卓(CAS有) 2.0.0.13865 50004626.1217(12桁) 4秒 Exact:OFF,Complex:OFF
SwissMicros DM42 (USB給電) 関数電卓 3.11 50004626.1221(12桁) 11秒 プログラムによる参考測定。表示設定 FIX 11
TI-Nspire CX CAS グラフ電卓(CAS有) 4.3.0.702 50004626.1221(12桁) 11秒 Calculation Mode:Auto, 最大12桁表示に設定
SwissMicros DM42 (電池動作) 関数電卓 3.11 50004626.1221(12桁) 34秒 プログラムによる参考測定。表示設定 FIX 11
CASIO fx-CG50 グラフ電卓(CAS無) 03.10.0212 50004626.12(10桁) 55秒
CASIO fx-CG10 グラフ電卓(CAS無) 02.02.3211 50004626.12(10桁) 1分41秒 fx-CG20同等品
CASIO fx-9750GII グラフ電卓(CAS無) 02.04.0701 50004626.12(10桁) 2分0秒
CASIO fx-9860GII グラフ電卓(CAS無) 02.09.0201 50004626.12(10桁) 2分11秒
TI-84 Plus CE グラフ電卓(CAS無) 5.2.2.0043 50004626.12(10桁) 4分7秒
HP 50g グラフ電卓(CAS有) 2.15 50004626.1234(12桁) 5分14秒 Approx:ON,Complex:OFF
TI-89 Titanium グラフ電卓(CAS有) 3.10 50004626.1221(12桁) 8分10秒 Exact/Approx:AUTO,最大12桁表示に設定
CASIO fx-JP900 関数電卓 CY-243 VerA 50004626.12(10桁) 11分31秒
TI-36X Pro 関数電卓 不明 50004626.11(10桁) 15分22秒
SHARP EL-5160J-X 関数電卓 不明 50004626.14(10桁) 37分47秒
SHARP EL-509T-AX 関数電卓 不明 50004626.14(10桁) 40分12秒
Canon F-789SG 関数電卓 不明 50004626.12(10桁) 53分51秒
CASIO fx-915ES 関数電卓 LY718X VerB 50004626.12(10桁) 56分14秒
CASIO fx-375ES 関数電卓 LY717X VerA 50004626.12(10桁) 56分28秒

▲先頭へ戻る

n = 105

参考値(wxMaximaによる): 5000096555.034763

機種名 種別 ファームウェア
バージョン
計算結果(桁数) 計算時間 備考
HP Prime (CAS表示) グラフ電卓(CAS有) 2.0.0.13865 5000096555.04(12桁) 3秒 Exact:OFF,Complex:OFF
Exact:OFFなのに[Shift]+[Enter]操作が必要
HP Prime (Home表示) グラフ電卓(CAS有) 2.0.0.13865 5000096555.47(12桁) 17秒 Home表示=CASなしモード
SwissMicros DM42 (USB給電) 関数電卓 3.11 5000096555.03(12桁) 1分43秒 プログラムによる参考測定。表示設定 FIX 11
TI-Nspire CX CAS グラフ電卓(CAS有) 4.3.0.702 5000096555.05(12桁) 1分45秒 Calculation Mode:Auto, 最大12桁表示に設定
SwissMicros DM42 (電池動作) 関数電卓 3.11 5000096555.03(12桁) 5分40秒 プログラムによる参考測定。表示設定 FIX 11
CASIO fx-CG50 グラフ電卓(CAS無) 03.10.0212 5000096555(10桁) 9分4秒
CASIO fx-CG10 グラフ電卓(CAS無) 02.02.3211 5000096555(10桁) 16分46秒 fx-CG20同等品
CASIO fx-9750GII グラフ電卓(CAS無) 02.04.0701 5000096555(10桁) 20分4秒
CASIO fx-9860GII グラフ電卓(CAS無) 02.09.0201 5000096555(10桁) 21分51秒
TI-84 Plus CE グラフ電卓(CAS無) 5.2.2.0043 5000096555(10桁) 41分33秒
HP 50g グラフ電卓(CAS有) 2.15 5000096555.45(12桁) 52分38秒 Approx:ON,Complex:OFF
TI-89 Titanium グラフ電卓(CAS有) 3.10 5000096555.06(12桁) 1時間28分29秒 Exact/Approx:AUTO,最大12桁表示に設定
CASIO fx-JP900 関数電卓 CY-243 VerA 5000096555(10桁) 1時間55分12秒 太陽電池を光から遮断して測定。理由後述。
TI-36X Pro 関数電卓 不明 5000096540(10桁) 2時間37分27秒 メモリ全消去後測定
SHARP EL-5160J-X 関数電卓 不明 1時間を大幅に超えるので測定せず
SHARP EL-509T-AX 関数電卓 不明 1時間を大幅に超えるので測定せず
Canon F-789SG 関数電卓 不明 1時間を大幅に超えるので測定せず
CASIO fx-915ES 関数電卓 LY718X VerB 1時間を大幅に超えるので測定せず
CASIO fx-375ES 関数電卓 LY717X VerA 1時間を大幅に超えるので測定せず

▲先頭へ戻る

測定して気がついたこと

HP Prime の CAS表示が不安定

2018年7月20日に HP Prime のファームウェアバージョン 2.0.0.13865 (2018 07 06) がリリースされました。
このバージョンからやっと CAS表示で n = 105 の結果を出せるようになりました(Exact:OFFのときのみ)。
それ以前のバージョンでは、CAS表示で n = 105 の計算をすると電卓が再起動して結果が出せませんでした。

何故か CAS表示で n = 105 の計算をすると、HOME表示よりも高速に計算できました。
n の数値が大きいので、CAS(数式処理システム)が計算を高速化するための何らかの工夫をしたのかもしれません。

しかし、CAS表示の Exact 設定(日本語表示の「正確」)に関するバグは未だに直っていません。
Exact 設定は以下のような機能です。

Exact:ON CAS表示で数学定数や超越関数を数値にしないようにします(CAS表示のデフォルト)。
ただし、[Shift] + [Enter] 操作をすると結果を数値で出せます。
Exact:OFF CAS表示でも結果を数値で求めます。[Enter] を押すだけで数値で結果が出ます。

以前、測定に使ったファームウェア "2016 08 29 (10637)" は n = 105 の計算が不可能でした。

2016 08 29 (10637)
CAS表示 Exact:ONCAS表示 Exact:OFF
n = 102 計算可 計算可
n = 103 再起動 計算可
n = 104 再起動 計算可
n = 105 再起動 再起動

下の表は、今回の測定に使った "2.0.0.13865 (2018 07 06)" です。2018年7月20日にリリースされました。
前述のように n = 105 の計算が一応できます。

2.0.0.13865 (2018 07 06)
CAS表示 Exact:ONCAS表示 Exact:OFF備考
n = 102 計算可 計算可
n = 103 再起動 計算可
n = 104 再起動 計算可
n = 105 再起動 計算可(注) (注)Exact:OFF なのに [Shift]+[Enter] 操作が必要

もっと新しいファームウェアも見ましょう。

2018年11月1日にリリースされた "2.1.14181 (2018 10 16)" です。
少し改善しましたが、Exact:ON のときに再起動するバグが未だに直っていません。

2.1.14181 (2018 10 16)
CAS表示 Exact:ONCAS表示 Exact:OFF備考
n = 102 計算可 計算可
n = 103 再起動 計算可
n = 104 再起動 計算可
n = 105 計算可 計算可(注) (注)Exact:OFF なのに [Shift]+[Enter] 操作が必要

同じファームウェアの Windows や Mac のエミュレーターだと Exact 設定に関するバグは少なくなっています。

2.1.14181 (2018 10 16)
Windows / Mac エミュレーター
CAS表示 Exact:ONCAS表示 Exact:OFF備考
n = 102 計算可 計算可
n = 103 計算可 計算可
n = 104 計算可 計算可
n = 105 計算可 計算可(注) (注)Exact:OFF なのに [Shift]+[Enter] 操作が必要

何故、エミュレーターの方が安定して動作するのかは不明ですが、エミュレーターの方がメモリが多いので、メモリー不足が発生しにくいという可能性はあります。
エミュレーターのリンク先は HP Prime の記事の「概要」に記載されています。

▲先頭へ戻る

下位機種の CASIO fx-9750GII が上位機種の CASIO fx-9860GII よりも高速

n=105のとき、下位機種の fx-9750GII の方が約9%程度高速です。 これは両機種のCPU性能がおそらく同一であり、fx-9860GII の方がファームウェアの構造が複雑なためと思われます(CPUはSH-4Aではないかと言われている)。 fx-9750GII はライン表示入力という古い入力方式を採用しており、ファームウェア構造は fx-9860GII より簡単です。 一方で fx-9860GII は教科書表示入力が可能である上にさらに機能も多くなっており、ファームウェアの構造は明らかに複雑でしょう。

▲先頭へ戻る

CASIO fx-375ES と CASIO fx-915ES のわずかな計算時間の差について

n=104 のとき、fx-375ES と fx-915ES の間に0.4%ほどのわずかな計算時間の差があります。 fx-375ES と fx-915ES は同じハードウェアと思われます(ROM容量の差はあるかもしれない)。 これらの電卓はファームウェアの違いで機能差を出しています。

通常の関数電卓のCPUクロックはCR発振を使っているものが多いので、この程度の誤差はあっても当然と思われます。

▲先頭へ戻る

電池電圧と太陽電池電圧の差によって計算速度に差が出る?

n = 105 のときの CASIO fx-JP900 の計算時間を測定していると、計算時間にばらつきがあることに気が付きました。 私は7回測定したのですが、1時間55分12秒〜1時間55分53秒と最大41秒の差がありました。 と言っても 0.6% 程度の差なのであまり気にする必要もないのかもしれませんが、どうやら太陽電池に光を照射しているかどうかで速度が変わるようです。

太陽電池を光から遮断すると1時間55分12秒になりました。
太陽電池にデスクライトの光を照射すると1時間55分53秒になりました。

この時間差は電池電圧と太陽電池電圧の差によって生じているような気がします。 ちなみに私が測定したときの fx-JP900 の電池電圧(LR44)は 1.477V(無負荷時)でした(店頭購入時の電圧は不明)。 fx-JP900 の太陽電池の電圧は不明ですが、測定時は LR44 よりも低かったのでしょう(強い光を照射すれば、太陽電池の電圧が LR44 の電圧を超える可能性もある)。

かと言って測定前に全機種の電池電圧と太陽電池パネルに照射する光の強さを揃えるのも難しく、本測定はあくまでも参考と言うことになります。しかし、大きな誤差は出ないと思います。

▲先頭へ戻る

[表紙へ]