2024年9月28日土曜日

fx-CG50 で Biomorph を描く

 Sentaro様から「面白いモノはナーイ ?」との事で、fx-CG50 upython をしばき倒す(?) 「Pickovers' Biomorph」のコードを動かしてみました。

当方が、Pickovers' Biomorph を知った、そのネタ元と言いますと、昔、図書館で読んだ、日経サイエンス誌の連載「コンピューター・リクリエーション」(A. K. Dewdney) なのですが、Pickover biomorphs で検索すると、およその所が解ると思います。

Mandelbrot set graphics の作業の様ですが、少し異なる部分もあります。
詳細はコードをご参照ください。

Pickovers' Biomorphs の場合、繰り返す計算式を色々と変更する事で、描かれる画像が多様に変化します。
このコードでは、

    z = z*z+c
を繰り返しますが、これを、例えばつぎの行にある様に、
    z = cmath.sin(z*z)-c
とかに変更すると、画像が大きく変化するのです。

複素数平面の座標値に数式を繰り返し適用するため、複素数を扱う関数が必要になりますが、残念ながら、fx-CG50 には cmath module が用意されておりません。

そこで、急ごしらえで cmath module を用意しました。 残念ながら、asin() などはまだ、用意できておりませんが、チョット遊ぶなら、この辺りから始めても十分であると思います。 

実行は、プログラムを読み込んだ後、

biom() 

と入力する事で実行されます。

ループ中の数式を変更する事でも、画像が大きく変化するのですが、定数 c を変える事でも、微妙に画像が変化します。
定数 c も複素数ですが、biom(c.real, c.imag) の様に、実部と虚部をカンマで分けて指定する事で与えられます。

残念ながら、cmath module が system binary ではなく、実行速度が大変遅いという哀しい部分はありますが、
じわじわとグラフィクスが描かれる様を眺めるのも、手のひらで動く電卓ならではの愉しみであると思います。

 

追記 on 2024-10-05

過日、K 様にコメント戴き、sqrt() を更新いたしました。
math.copysign() が fx-CG50 には無いため、自家製の copysign() もどき csign() を付け足しましたヨ。これにより、計算速度が向上したという具合には行きませんが、ネタとしては色々と面白かったので、後日、別記したく思います。

謝謝 !


リスト  biom.py

# title : biom.py - Pickovers' Biomorph for fx-CG50
# begin : 2024-09-28 19:33:39

from casioplot import *
import math
import cmath

def  biom(re=0, im=0) :
  width  = 383
  height = 191

  xs=-3.8
  xe= 3.8
  ys=-1.9
  ye= 1.9
 
  c = re - im*1j

  #  Biomorph
  for j in range(height):
    for i in range(width):
      z = (i*(xe-xs)/width +xs) + 1j*(j*(ys-ye)/height+ye)
      #  repeating core
      k = 0
      while abs(z) <= 10 and k < 10:
        z = z*z+c
        #z = cmath.sin(z*z)-c
        k=k+1
      #  
      if abs(z.real) < 10 or abs(z.imag) < 10 :
        set_pixel(int(i), int(j))

      #  show graphix progressively
      show_screen()


リスト  cmath.py

##  title : [WIP] cmath module for fx-CG50
## begin : 2024-09-28 00:38

import math

# copysign() like something ...
def csign(x, y) :
if y == 0.0 :
if str(y) == '-0.0' :
return -abs(x)
else :
return abs(x)
else :
if y < 0 :
return -abs(x)
else :
return abs(x)

#
def phase(x) :
return math.atan2(x.imag, x.real)

##
def exp(x) :
return pow(math.e, x)

##
def ln(x) :
return math.log(abs(x)) + phase(x)*1j

##
def log(x, base=math.e) :
return ln(x) / ln(base)

## thanks K sama ! on 2024-10-04
def sqrt(x) :
# return pow(x, 0.5)
return math.sqrt((abs(z)+z.real)/2) + 1j* csign(math.sqrt((abs(z)-z.real)/2), z.imag)

##
def sin(c) :
return math.sin(c.real)*math.cosh(c.imag) + (math.cos(c.real)*math.sinh(c.imag))*1j

##
def cos(c) :
return math.cos(c.real)*math.cosh(c.imag) - (math.sin(c.real)*math.sinh(c.imag))*1j

##
def tan(c) :
return sin(c) / cos(c)

12 件のコメント:

K さんのコメント...

cmathのsqrtについて、
return math.sqrt((abs(x) + x.real)/2) + 1j * copysign(math.sqrt((abs(x) - x.real)/2), x.imag)
みたいにすると、sqrt(-1)なんかが見た目のいい結果になります。
ただ、CG-50のmathモジュールにはなぜかcopysignがないので、それっぽいのを自作するかx.imagの正負で処理を分けるかする必要があります^^;

akatuki さんのコメント...

K 様、はじめまして。お知らせ、多謝であります !

「取り敢えず」の状態で用意いたしましたものですから、未だ、至らぬ点がある所は御容赦戴き度。

多価関数の場合分けの件、昔は色々と調べたのですが、最近は怠けておりまして「見切り発車」になってしまった様です。
arc-trigonometrics の導入も未だで、じっくりと攻めて行きたく思う所です。

CG50の math moduleは、他にも欲しいモノが無かったりしますネ。math.erf() とか。

Sentaro さんのコメント...

akatuki様、K様、こんにちは!

ちょこっとバタバタしておりまして遅れました(汗)

フラクタル系のプログラムは出てくる模様がなかなかに斬新ですね。(^^)

とりあえずPython電卓の速度比較としてPrimeG2とNspireCXIIと84CEでも実行してみました。
PrimeG2とNspireCXIIではcmathが実装されてますが84CEはCG50同様にcmathは実装されてない模様です。
ライブラリの不足はそれを自作することも含めて教育用とするならありなのでしょうが、各社差別化の要因になってくるとあれなのでその辺は横並びで統一してほしいところではありますね。

ってことで、実行結果はz*zとsin(z*z)の場合で
CG50は73秒と320秒、
PrimeG2では5秒と6秒、
NspireCXIIでは154秒と125秒、
84CEは39分…sin(z*z)はcmath無いので遅すぎてパスです。(^^;

NspireCXIIは本来ならもっと速いはずですがCG50と帳尻を合わせたかのような速度になってますね。(^^;

84CEはパラメータ変更して試してみようとは思わない遅さですが、
PrimeG2くらいになるといろいろ試してみようという感じになります。

akatuki さんのコメント...

Sentaro 様、ようこそお越し !

> ちょこっとバタバタしておりまして遅れました(汗)

いえいえ。こちらも身辺、穏やかならざる状態で、遅れ気味であります。

> フラクタル系のプログラムは出てくる模様がなかなかに斬新ですね。(^^)

ネタとしては、以前からポツポツと出したりしているんですけれど、
今般、upython が動くというので、ちょっこし試してみたという所でありんすネ。

> とりあえずPython電卓の速度比較としてPrimeG2とNspireCXIIと84CEでも実行してみました。

お疲れ様であります !
fx-CG50 では既に手元で試しているのですが、他はどうしようもないので、情報、有り難く思います。

> PrimeG2とNspireCXIIではcmathが実装されてますが84CEはCG50同様にcmathは実装されてない模様です。

84CEに無かったとは、意外な感じでありますが、fx-CG50相当とすると、なるほどという所でしょうか。

> ライブラリの不足はそれを自作することも含めて教育用とするならありなのでしょうが、各社差別化の要因になってくるとあれなのでその辺は横並びで統一してほしいところではありますね。

TIの場合、そこは、Nspire と 84CE の「グレード分け」という事で ?
cmath module は、盛り込むには手間が掛かる様ですから、ファームウェア更新で徐々に拡充を期待するのを松、とか。
TI の電卓では、他にいろいろと楽しいmoduleがあるらしいので、そちらを使って欲しいという商品戦略上の意図もあるのでしょうが。

> ってことで、実行結果はz*zとsin(z*z)の場合で
> CG50は73秒と320秒、
> PrimeG2では5秒と6秒、
> NspireCXIIでは154秒と125秒、
> 84CEは39分…sin(z*z)はcmath無いので遅すぎてパスです。(^^;

> NspireCXIIは本来ならもっと速いはずですがCG50と帳尻を合わせたかのような速度になってますね。(^^;

Nspireは、意外に掛かっておりますネ。fx-CG50がユーザー cmath modulleという事を考えると、fx-CG50はかなり頑張っている ?

> 84CEはパラメータ変更して試してみようとは思わない遅さですが、

コレはマイッタ ... 意外な所で、圧倒的な差がついてしまった。
clockも向上しているので期待しておりましたが、コレはキツイ。

> PrimeG2くらいになるといろいろ試してみようという感じになります。

圧倒的な速さですから、気軽に試せますネ。

しかし、84CE は驚いちゃったなぁ。何かしら、速度向上に役立つ手法がありそうな気がします。
例えば、pixelを一通り描画してから、show_screen() のような関数を実行して表示するとかすると、速度が稼げるとか ?
( 現状では、pixel を1つ打つ毎に show_screen() 呼んでいるので、それだけ遅くなりますネ )

最近、TI電卓もAmazon JPに入荷していて、ポツポツと売れている様です。
TI 電卓だと、Lua とか使った方が速度を稼げるのかなぁ ?

ともあれ、興味深いご報告、有難うございます。

Sentaro さんのコメント...

akatuki様、皆様、こんにちは!

>TIの場合、そこは、Nspire と 84CE の「グレード分け」という事で ?

84CEはCG50と同じカテゴリーでCAS電卓かそうでないかというところで線引されている感じがありますね。


>TI の電卓では、他にいろいろと楽しいmoduleがあるらしいので、そちらを使って欲しいという商品戦略上の意図もあるのでしょうが。

制御系のモジュールとか独自に用意されてますよね。
機能的に見るとCG50のPythonが一番シンプルでサポートモジュールが少ない感じですけど、次期CG100でもさほど変わらないとなると…


>Nspireは、意外に掛かっておりますネ。fx-CG50がユーザー cmath modulleという事を考えると、fx-CG50はかなり頑張っている ?

CG50のPythonは若干のオーバーヘッドはありながらも純粋にCPUの速度が発揮されてる感じはありますね。
そこからするとNspireも84CEも意図的なブレーキがかかっているような感じを受けます。(^^;

>コレはマイッタ ... 意外な所で、圧倒的な差がついてしまった。
>clockも向上しているので期待しておりましたが、コレはキツイ。

eZ80と同じ48MHzのARMらしいのですが、CG50は約118MHzなのでそこから比較してもちょっと遅すぎる感じがありますね。


>しかし、84CE は驚いちゃったなぁ。何かしら、速度向上に役立つ手法がありそうな気がします。
>例えば、pixelを一通り描画してから、show_screen() のような関数を実行して表示するとかすると、速度が稼げるとか ?

TIのPythonはtimeモジュールが実装されているので時間計測は簡単に出来るので描画関連を省いて実行してみました。

z*zの場合だけですが、
NspireCXIIは若干20秒で終わったので描画部分がかなり遅いという結果に。
84CEも計算だけなら382秒だったのでこれも描画がかなり遅い感じですね。

CG50では計算だけなら70秒ほどですから描画コストはさほどかかってないという感じですが、
NspireではCG50同様にダブルバッファリング描画出来るようですからそれで試したところ
58秒で描画完了、CG50より若干速いレベルまで来ました。
84CEはまだそこのあたりが出来るかどうかが見つけられてないですが全体的に遅いのであまり期待は出来ないかもしれません。(^^;


>TI 電卓だと、Lua とか使った方が速度を稼げるのかなぁ ?

非純正だとXCASとか純粋なハードの速度が出せるアプリがありそうですが、
純正だとPythonよりLuaでという感じかもしれませんね。

akatuki さんのコメント...

Sentaro 様、おばんです !

> 84CEはCG50と同じカテゴリーでCAS電卓かそうでないかというところで線引されている感じがありますね。

仰るとおりで。
TI-83+ の時も, TI-89 がCAS搭載で、値段が張っておりました。泣く泣く、83+ を購入した過去が (ショボーン)。

> 制御系のモジュールとか独自に用意されてますよね。

そう、ソレです !

> 機能的に見るとCG50のPythonが一番シンプルでサポートモジュールが少ない感じですけど、次期CG100でもさほど変わらないとなると…

確か,fx-CG50 には、ユーザーmodule っぽい、turtle graphics などのコードが提供されておりましたネ。
turtle graphics くらいだと、速度はある程度出てくれればいいのでしょうが、
key detection みたいなのは、システム組み込みで用意してくれないと、如何ともしがたい ...
尤も、module をてんこ盛りしすると、TI電卓の様に速度が犠牲になるとか ?

> CG50のPythonは若干のオーバーヘッドはありながらも純粋にCPUの速度が発揮されてる感じはありますね。
> そこからするとNspireも84CEも意図的なブレーキがかかっているような感じを受けます。(^^;

やはり、そうですネ !
Nspire は ARM processor だったような ? HP Prime に迫る速度とか期待したいところですが、OSが肥大化して足を引っ張ってしまったとか ?

> eZ80と同じ48MHzのARMらしいのですが、CG50は約118MHzなのでそこから比較してもちょっと遅すぎる感じがありますね。

84CE, ARM processorになったのですか。48MHzというと、チョット, パワー不足なのかなぁ ?

> TIのPythonはtimeモジュールが実装されているので時間計測は簡単に出来るので描画関連を省いて実行してみました。

あっ ! time モジュールがあったのネ !
すると、event driven な実装、というか、システムがそういったメカを指向している ( 制御系のmoduleとかは、周辺機器との通信をやっているフシがありますネ )
から、(システム内部で)割り込みビシビシ、全体に遅くなるような感じかしらん ?

> z*zの場合だけですが、
> NspireCXIIは若干20秒で終わったので描画部分がかなり遅いという結果に。
> 84CEも計算だけなら382秒だったのでこれも描画がかなり遅い感じですね。

ウーム。
graphics では、グラフを描くため「仮想座標系」への変換とかを裏でやっているとか ?
あるいは、pixel を打つみたいなのではなく、線や円などのグラフィクス・オブジェクトを配する様な作りのため、描画コストが掛かっているとか ?

> CG50では計算だけなら70秒ほどですから描画コストはさほどかかってないという感じですが、
> NspireではCG50同様にダブルバッファリング描画出来るようですからそれで試したところ
> 58秒で描画完了、CG50より若干速いレベルまで来ました。

オオッ ! 流石は Nspire 。
でも、upython のみで遊ぶにしてはチョット高めの価格。BASIC, Lua などでも遊ばないともったいないなぁ。
それだけ「遊びがい」はあるとしましょう。

> 84CEはまだそこのあたりが出来るかどうかが見つけられてないですが全体的に遅いのであまり期待は出来ないかもしれません。(^^;

そこは、難しいですネ。
84CEは BASIC が結構楽しそうですから、いじってみたい気もしますが、
価格の心配が要らない「大人買い」なれば、Nspireの方がいいのかも。

> 非純正だとXCASとか純粋なハードの速度が出せるアプリがありそうですが、
> 純正だとPythonよりLuaでという感じかもしれませんね。

やはり、そうなのかなぁ。
そうなると、NSpire でLua のお勉強とか ... 高齢の域が近づきつつあるこの身に、新しい言語のお勉強は堪えます。upython でさえヒーヒー言っているという ...

お知らせ、有り難く !

Sentaro さんのコメント...

akatuki様、皆様、こんにちは!

>key detection みたいなのは、システム組み込みで用意してくれないと、如何ともしがたい ...
>尤も、module をてんこ盛りしすると、TI電卓の様に速度が犠牲になるとか ?

リアルタイムキー入力関連はやっと次で実装されますが、標準で付属するモジュールの少なさはやはり教育用と割り切ってるフシがありますね。


>Nspire は ARM processor だったような ? HP Prime に迫る速度とか期待したいところですが、OSが肥大化して足を引っ張ってしまったとか ?

CXIIだと400MHzのARMですが、PrimeG1と同等のCPUみたいですね。
500MHz超のPrimeG2同等にならなかったのはそこまでの速度は要らないと判断されたかも?


>84CE, ARM processorになったのですか。48MHzというと、チョット, パワー不足なのかなぁ ?

84CEのPythonは最初外付けのPythonアダプターで実現していたのを内蔵しただけという感じなので本体のeZ80とPython専用のARMのマルチCPU構成になってます。
そのせいでARM側のPython実行時は入出力関連のオーバーヘッドありすぎな感じもしますが、ARMの動作クロックが本体と同じ48MHzなのも遅さの原因でしょう。
Numworksのように最初からPythonがプログラミング言語として採用されていたわけでもないので実習用としてパフォーマンスは二の次みたいな感じの実装ですね。


>あっ ! time モジュールがあったのネ !
>すると、event driven な実装、というか、システムがそういったメカを指向している ( 制御系のmoduleとかは、周辺機器との通信をやっているフシがありますネ )

TIは制御の関連から時間を計測するコマンドがBasicから実装されてますが秒単位なので細かな精度はあれですが、プログラムで時間計測が出来るかどうかの差は結構大きいですね。
CG50とか9860Gシリーズも最初からRTC内蔵なので時間計測コマンドの実装があっても良かったと思いますよね。


>84CEは BASIC が結構楽しそうですから、いじってみたい気もしますが、
>価格の心配が要らない「大人買い」なれば、Nspireの方がいいのかも。

84CEのPythonはBasicよりは若干速いだけのオマケレベルといってもよいものなので、どっちか1台っていうなら間違いなくNspireでしょうけど、Z80電卓の末裔としてなら十分価値があると思います。(^^)


>そうなると、NSpire でLua のお勉強とか ... 高齢の域が近づきつつあるこの身に、新しい言語のお勉強は堪えます。upython でさえヒーヒー言っているという ...

Luaは実機本体でプログラミングできない上にWindowsアプリのようにイベント駆動でプログラミングしないといけないのであれこれ遊ぶには敷居が高いですが、CG50でのアドイン対抗?な感じでそのパフォーマンスも純正言語としては最強最速になるように設計されてる感じですね。

ところで、
最近スマホやタブレット向けのPrimeアプリが以前のバージョンとは別アプリとして有料で更新されてましたが、試しにダウンロードしてみたらPCコネクトキットと接続が出来なくなってました。
Pythonとかも使えるようになってるので最新仕様にはなっているのですが通信だけが出来ない(返品待ったなし状態の)謎仕様の有料アプリになってます。(^^;

akatuki さんのコメント...

Sentaro 様、遅れており、申し訳ありません !

> リアルタイムキー入力関連はやっと次で実装されますが、標準で付属するモジュールの少なさはやはり教育用と割り切ってるフシがありますね。

fx-CG50でもアプデがある事を期待したい所ですが、
仰る様に、CASIOのupythonのmoduleは、チョット腰が引けている様に思われます。
教育用と言っても、そこはCASIOらしさ、というか、面白いモノ、遊び心を期待したいものです。

> CXIIだと400MHzのARMですが、PrimeG1と同等のCPUみたいですね。
> 500MHz超のPrimeG2同等にならなかったのはそこまでの速度は要らないと判断されたかも?

そうでしたネ。G2のクロック、かなりのモノでした !
しかし、そこで足踏みしている様な感じも ?

> 84CEのPythonは最初外付けのPythonアダプターで実現していたのを内蔵しただけという感じなので本体のeZ80とPython専用のARMのマルチCPU構成になってます。
> そのせいでARM側のPython実行時は入出力関連のオーバーヘッドありすぎな感じもしますが、ARMの動作クロックが本体と同じ48MHzなのも遅さの原因でしょう。

ゲーッ ! そうだったの !? SEGA の Tera Drive (だったっけ ? Multi-processorの PC ...) の様な。
意外に「おごった」構成と言うか、ムダに贅沢というか。ARM-Pythonの「オマケ感」が ...

> Numworksのように最初からPythonがプログラミング言語として採用されていたわけでもないので実習用としてパフォーマンスは二の次みたいな感じの実装ですね。

eZ80 で、メモリも潤沢に使えるから、upythonもeZ80で動いているのかと思いましたが、そうか、upython、32bit processorでないと、動かないのネ ? compilerの都合もあるのでしょうが。
eZ80+ARMという、upython動かすための無理ゲー、TIの意欲は驚嘆するものがあります。道理で、当初、供給が遅れたワケだ ...

> TIは制御の関連から時間を計測するコマンドがBasicから実装されてますが秒単位なので細かな精度はあれですが、プログラムで時間計測が出来るかどうかの差は結構大きいですね。

そうか ! embedded-ARMに RTC をやらせているのかな ?

> CG50とか9860Gシリーズも最初からRTC内蔵なので時間計測コマンドの実装があっても良かったと思いますよね。

fx-CG50 でも, XCASでは時計が使えましたネ。
電池を消費するっていうんで、推奨されないのかな ? upython 実行時に限定すれば、計時くらいは出来そう ?

> 84CEのPythonはBasicよりは若干速いだけのオマケレベルといってもよいものなので、どっちか1台っていうなら間違いなくNspireでしょうけど、Z80電卓の末裔としてなら十分価値があると思います。(^^)

ウーン。まさか、84CE が eZ80+ARM だったとは。悩ましいなァ。

> Luaは実機本体でプログラミングできない上にWindowsアプリのようにイベント駆動でプログラミングしないといけないのであれこれ遊ぶには敷居が高いですが、CG50でのアドイン対抗?な感じでそのパフォーマンスも純正言語としては最強最速になるように設計されてる感じですね。

やはり、LuaプログラミングにはPCが要るのネ。本体で使えないというのは、チョット残念。
PCでbinary作る感じだと、道理でパワーがある訳でした !

> ところで、
> 最近スマホやタブレット向けのPrimeアプリが以前のバージョンとは別アプリとして有料で更新されてましたが、試しにダウンロードしてみたらPCコネクトキットと接続が出来なくなってました。
> Pythonとかも使えるようになってるので最新仕様にはなっているのですが通信だけが出来ない(返品待ったなし状態の)謎仕様の有料アプリになってます。(^^;

... !?
スマホアプリでもPC リンクが出来ると、アプデまで面倒をみなくてならず、で、PCリンク機能をヤメタ、とか ?
まあ、スマホアプリが売れても、電卓そのものが売れないのでは、電卓を作る意味がありませんから、PCリンクは実機のみでネ、というのも判らなくはありませんが、
却って、ユーザーの信頼を損なう結果に、というのは、如何ともしがたい所ですネ。

TI、84CEでmult-processor構成だったなんて聞くと、じわじわと電卓事業を進めている様ですが、
HP、G2以降は、チョット足踏みしているのかなぁ ?
日本から購入するのも敷居が高くなってしまったので、この先は難しい所です。

Sentaro さんのコメント...

akatuki様、皆様、こんにちは!

>そうでしたネ。G2のクロック、かなりのモノでした !
>しかし、そこで足踏みしている様な感じも ?

G1とG2ではクロック比では400MHzから528MHzですから3倍どころかわずか1.3倍位しか違わないのでG2のARMはスマホ相当に効率が良いCPUに変更されてますが、
NspireCXIIがやっとG1に追いつけるかどうかという状況では独走するのもアレな感じになってるかもですね。
ま、スマホの毎年の新機種発売に比較すれば新規発売時に1台買っておけば数年は新製品が出てこない安心感?があるともいえます。(^^;

>意外に「おごった」構成と言うか、ムダに贅沢というか。ARM-Pythonの「オマケ感」が ...

eZ80でPythonが動かせないのでARM追加なのはわかるのですが、ここでNspireみたいなARMだけにしてZ80はエミュでみたいな流れにせずeZ80を残したあたりがTI-80シリーズの継続性なのですよね。
オマケ感という意味では84CEにおけるPythonは確実にオマケです。(^^;


>そうか ! embedded-ARMに RTC をやらせているのかな ?

TI-84SEの時点でRTCが追加されてBasicに時間計測コマンドが装備された模様です。


>電池を消費するっていうんで、推奨されないのかな ? upython 実行時に限定すれば、計時くらいは出来そう ?

ハードとして実装されてさえいればそれを使うアドイン等の手段があれば特に問題ないですが、
CG100でアドイン不可ということになれば純正仕様として組み込まれてないとお手上げです。(^^;
BasicではTI仕様を積極的に取り入れる状況だったのに時間系コマンドはTIに差を付けられてる状態ですね。

>スマホアプリでもPC リンクが出来ると、アプデまで面倒をみなくてならず、で、PCリンク機能をヤメタ、とか ?

従来からあるアプリのバージョンアップとしてでなく、別アプリとして出てきているのでそのあたり意図的に使えなくしてる感ありますね。
もしかしたら電卓本体みたいに無線アダプター付けたら通信できるのかもしれないですが、、
今までのバージョンでは問題なく繋がっていたことが出来なくなると通信通話できないスマホ新発売みたいでさすがに閉口しました。(^^;


>日本から購入するのも敷居が高くなってしまったので、この先は難しい所です。

CASIOにしても関数電卓はもはや日本発の製品では無く海外主導で開発された製品をスタンダード電卓でかろうじて日本語化してる程度になってますし、全製品を日本で販売してくれるという状況にもないので高機能電卓を取り巻く状況は日々厳しい状態になってきてますね。(^^;

akatuki さんのコメント...

Sentaro 様、諸用で遅れておりまして、申し訳ありません !

> G1とG2ではクロック比では400MHzから528MHzですから3倍どころかわずか1.3倍位しか違わないのでG2のARMはスマホ相当に効率が良いCPUに変更されてますが、

そういや、一頃はG2のファームウェア更新がうまく行かなくない(Brick) 時期があったようでした。
また、G1 と G2 では、ファームのイメージが別になっているそうで、
プロセッサの変更でごたついていたのかな ?

> NspireCXIIがやっとG1に追いつけるかどうかという状況では独走するのもアレな感じになってるかもですね。
> ま、スマホの毎年の新機種発売に比較すれば新規発売時に1台買っておけば数年は新製品が出てこない安心感?があるともいえます。(^^;

仰るとおりではありますが、
ARM processor の進歩というのが、スマートフォンの「お下がり」っぽい感じで、供給されるような所もあり、
Numworks あたりは、それで攻めてきている様な感じが。
HP Prime は、G2 になって十分な所まで進歩したから、当面は手を入れないのかも ?
TI は 84CE でDual procesor なんて奇手を繰り出しておりますが、Nspire CXも、そろそろ更新とか ?

> eZ80でPythonが動かせないのでARM追加なのはわかるのですが、ここでNspireみたいなARMだけにしてZ80はエミュでみたいな流れにせずeZ80を残したあたりがTI-80シリーズの継続性なのですよね。

確かに、ARM でZ80 のエミュレーションという線はあっても良かったのかも知れませんが、
そうすると、Nspire の方をどうするか、という問題がありますネ。eZ80 でARMを付け足す方針、強引な感じでもありますが、ある意味では「まっとう」な解決案だった ?
84CE python 、当初は供給不足だったのですが、dual processor なら、納得であります。

> オマケ感という意味では84CEにおけるPythonは確実にオマケです。(^^;

コストを考えたら、upythonが動く最低線のARM を付け足した、と。メインはeZ80 ですネ。
でも、upython REPL をsub processor ARM にやらせているのは、驚きです。それで外部機器と通信までさせているというのは「凝った」作りではあります。
Raspi PICO に使われている ARM processor RP2040 が、upython REPLが動いて、ン百円くらいらしいので、こうしたプロセッサを付け足すのも、コスト的には十分に折り合いがつくようになったとか ?

> TI-84SEの時点でRTCが追加されてBasicに時間計測コマンドが装備された模様です。

あっ、そうでしたの !?
電池交換ではなく、充電池にしたのは、そうした所もあったのか。流石は TI。
当方の認識は、83+の頃から進歩しておりませんで、迂闊でありました。ハンセイ。

> ハードとして実装されてさえいればそれを使うアドイン等の手段があれば特に問題ないですが、
> CG100でアドイン不可ということになれば純正仕様として組み込まれてないとお手上げです。(^^;

ウーム。
fx-CG100 (Graph MATH+), Add On 対応がまだ、判らない ?
グラフApps などの追加はアナウンス (Grap MATH+, 2025年)されておりましたが、BASIC の追加もまだアナウンスされていないのかなぁ ?

> BasicではTI仕様を積極的に取り入れる状況だったのに時間系コマンドはTIに差を付けられてる状態ですね。

そこは、upython に舵を切ったから、BASIC が後回しになってしまったのかなぁ ?
だとすると、upythonももう少し力を入れても良さそう。
まだ「迷い」があるすれば、Add Ons にも一縷の望みが ... ?

> 従来からあるアプリのバージョンアップとしてでなく、別アプリとして出てきているのでそのあたり意図的に使えなくしてる感ありますね。

スマホアプリで済まされると、実機の販売に影響するから、スマホアプリの仕様変更をしたのかなぁ ?

> もしかしたら電卓本体みたいに無線アダプター付けたら通信できるのかもしれないですが、、

スマホアプリだったら、スマートフォンには無線の経路は実装済みですから、無線接続というのはありそうです、面白そうです !
しかし、無線アダプタが十分に売れる状況でないと、実機の方も販売に影響が出そうな ?

> 今までのバージョンでは問題なく繋がっていたことが出来なくなると通信通話できないスマホ新発売みたいでさすがに閉口しました。(^^;

その辺りで、電卓という「ブツ」を売っていくのか、スマホアプリで商売をするのか、
迷いがあったりして ?

> CASIOにしても関数電卓はもはや日本発の製品では無く海外主導で開発された製品をスタンダード電卓でかろうじて日本語化してる程度になってますし、全製品を日本で販売してくれるという状況にもないので高機能電卓を取り巻く状況は日々厳しい状態になってきてますね。(^^;

仰るように、グラフ電卓、upython電卓の「市場」は海外指向ではあります。
電卓のパッケージも、SDGs 指向で、ブリスターパックから紙パッケージへの移行を進めているとありました。
日本向けとして、特別な事はやりたくはない様な ?
しかも、海外で販売している方が、国内で流通しているものよりも安い、となってしまった。
国内向けでは「薄利多売」をヤメているかの様で、サミシイ ... 。

Sentaro さんのコメント...

akatuki様、皆様、こんにちは!

>また、G1 と G2 では、ファームのイメージが別になっているそうで、
>プロセッサの変更でごたついていたのかな ?

同じAMR系でもV5からV7への変更で従来互換でそのままというわけにはいかなったんですね。
そこを考えるとNspireが初期のARMからのクロックアップ版だったのも手直し等の手間を避けるため互換を考えると仕方ないところだったかもしれません。
あと、PCやスマホ業界と違って電卓で最速を狙うというのがCASIO共々あまり無さそうなものありそうですね。(^^;


>ARM processor の進歩というのが、スマートフォンの「お下がり」っぽい感じで、供給されるような所もあり、
>Numworks あたりは、それで攻めてきている様な感じが。

ARMに関してはその進化をきちんと追えてなかったんですが、
AppleがメインCPUに据えたあたりからパフォーマンス的にもかなりの進化を遂げてるようですね。

Numworksは最初からG2同様の新し目のARM-V7を載せられたのが大きかったかもですね。
最初は100MHzスタートでも実質NspireのARM-V5の200MHz超くらいですからその差はでかいです。


>HP Prime は、G2 になって十分な所まで進歩したから、当面は手を入れないのかも ?
>TI は 84CE でDual procesor なんて奇手を繰り出しておりますが、Nspire CXも、そろそろ更新とか ?

NspireもG2同様にV5からV7に変更すれば一気に3倍速になるでしょうから、そこに向けて対応ファームを準備中かもですね。
そうなると追いつかれるPrimeG2はさらに高速な新しいARMを載せたG3を出してくるという流れになるかどうかはなんともいえないところですが。(^^;


>確かに、ARM でZ80 のエミュレーションという線はあっても良かったのかも知れませんが、

最初のNspireはTI-84シリーズからの移行目的でキーボード取り替えたらZ80のエミュレーションでTI-84互換にもなるという裏技的なモードがありましたね。
TI-84CEの次世代を考えるとeZ80の次が無いのでARMエミュレーションという形になる未来しか無いと思われるのですが、そうなってくるとCASIOもこのままSH4で行くのかどうなのかという感じになってきます。


>Raspi PICO に使われている ARM processor RP2040 が、upython REPLが動いて、ン百円くらいらしいので、こうしたプロセッサを付け足すのも、コスト的には十分に折り合いがつくようになったとか ?

本体のeZ80側はほぼ変更すること無く、Pythonが動作する安価なARMをそのまま載せるという方法で追加コストが一番かからない手段を選んだという感じがしますね。
TI-84CEにPythonが付いても価格上がったわけでもなく据え置きなので付加価値としてはそれなりに大きいけど実際にはあまり使えないという感じのレベルで落ち着きました。(^^;


>電池交換ではなく、充電池にしたのは、そうした所もあったのか。流石は TI。

あ、現行のカラーのCEからではなくモノクロのSilverEditionくらいからですね。


>fx-CG100 (Graph MATH+), Add On 対応がまだ、判らない ?

残念ながらCG100に関しては今のところは明るい話題はほぼ無い状態です。(^^;
空き容量が16MBから4.5MBに削減されてるあたり、アドイン追加があったとしてもOS組み込みの公式アドインに限定されそうですし。


>だとすると、upythonももう少し力を入れても良さそう。

ここはバージョンアップでどうにでもなりますから少しずつでも改善されることは期待できそうですね。
とはいえ、潜在的CASIOユーザーがCG100にすんなり行くかどうかはなんとも言えず、一気にNmuworks方面に流れていきそうな感じも無くはなく?


>スマホアプリで済まされると、実機の販売に影響するから、スマホアプリの仕様変更をしたのかなぁ ?

スマホ&タブレット禁止の学校で使うとなればなら実機しか無いわけで、アプリ版が実機販売に影響あるとは思えないですが、実際のところアプリ版の方が数倍速いので実機の速さが霞んでしまうというのはあるかもしれません。(^^;
その点、CASIOはエミュで実機と速度同じというのはいい落とし所だったのかもですね。


>電卓のパッケージも、SDGs 指向で、ブリスターパックから紙パッケージへの移行を進めているとありました。

あの固いガードのブリスターパックは下手すると開封時に怪我しちゃいますから紙パッケージ大歓迎です。
その昔は関数電卓はガラスケースに鎮座していたものですが、今や吊るし売りですから、時代の流れといえばそういう時代なのですよね。(^^;

akatuki さんのコメント...

Sentaro 様、どうも、遅れ気味であり申し訳ない !

> 同じAMR系でもV5からV7への変更で従来互換でそのままというわけにはいかなったんですね。

なるほど ! processorの更新が、結構大きいのね。
順調に進歩を重ねるとなると、ARM 64bit電卓とか、出たりしそう。
でも、価格との折り合いですネ。

> そこを考えるとNspireが初期のARMからのクロックアップ版だったのも手直し等の手間を避けるため互換を考えると仕方ないところだったかもしれません。

以前は、ARMを使ったBeagleBoneとかのワンボードマイコンを製造していて、ICからコンシューマープロダクツまでカバーしていた, TIらしい展開もあったようですが、
最近はちょっと停滞気味なのかなぁ ?

> あと、PCやスマホ業界と違って電卓で最速を狙うというのがCASIO共々あまり無さそうなものありそうですね。(^^;

そこは「電卓として十分な機能を提供する」という具合でしょうから、速度は後で改善する事を期待して、ですネ。
事業の継続性とも関連するのでしょう。

> ARMに関してはその進化をきちんと追えてなかったんですが、
> AppleがメインCPUに据えたあたりからパフォーマンス的にもかなりの進化を遂げてるようですね。

仰るように、Appleが M series で PC を出した事で、ARMマシンが大きく進化した様な所があります。
どうも、ARMに関しては、Apple が初のARM 64 bit processor を開発 (iPhone8に採用されたらしい)して、そのデザインベースがARM社に提供されたとかいう話もあり、
他にも、Appleが先進的なデザインを開発しては、ARM社に供与してきた様な所もあるみたいです。
パワーの競争に入って来ると、今度はIntelも頑張ってきているので、最新のPCでは、プロセッサ・コア以外の部分、
Machine Learningなどの部分でしのぎを削るとか言いますが、こうなると、Small device としてはついて行けない。
技術の進歩も凄まじく、いずれはこうした部分が普及する事で、手乗り製品に載るのでしょうが、あまり考えたくないなぁ。

> Numworksは最初からG2同様の新し目のARM-V7を載せられたのが大きかったかもですね。
> 最初は100MHzスタートでも実質NspireのARM-V5の200MHz超くらいですからその差はでかいです。

アレって、結構イケていたのですネ !
しかし、ユーザーストレージがRAMにあり、電池切れで記憶が消失してしまうのが、チョット寂しい様な。
PC経由でのクラウドストレージというのは、今時のデバイスとしていい具合なのでしょうが、電卓という感じが薄い様な ?

> NspireもG2同様にV5からV7に変更すれば一気に3倍速になるでしょうから、そこに向けて対応ファームを準備中かもですね。

それはありそうですネ !
84CE python ed. が ARM Corte-M0+ (みたいです) を付けたくらいですから、そろそろ Nspireの更新があっても不思議ではなさそう ?

> そうなると追いつかれるPrimeG2はさらに高速な新しいARMを載せたG3を出してくるという流れになるかどうかはなんともいえないところですが。(^^;

Prime G2 も、登場から時間が経っている様で、
「次の手」としては、processor 更新か、それとも、新しいデザインにするか。
Appsのコピーを作って、それをカスタマイズして専用Appsを構成する、という部分、結構先進的でもあるのですが、
ストレージを食うかも知れないので、メモリ拡張とかあるといいのかも。
でも、価格がちょっとキツイなぁ。

> 最初のNspireはTI-84シリーズからの移行目的でキーボード取り替えたらZ80のエミュレーションでTI-84互換にもなるという裏技的なモードがありましたね。

アレッ, そうだったの ?
そうか、それで最初はTI BASIC で Graphics が利用できなかったのかな ?
Graphics は TI-84互換モードで利用とか。

> TI-84CEの次世代を考えるとeZ80の次が無いのでARMエミュレーションという形になる未来しか無いと思われるのですが、そうなってくるとCASIOもこのままSH4で行くのかどうなのかという感じになってきます。

仰るように、processor供給の問題がありますネ。
TIの場合、84CEをARMにすると、Nspireとの棲み分けをどうするか、という問題があり。
CASIOは、この際、ARMに乗り換えてもいいのかも知れませんが、乾電0池稼働をどうするか、という点で判断が難しい ?

> 本体のeZ80側はほぼ変更すること無く、Pythonが動作する安価なARMをそのまま載せるという方法で追加コストが一番かからない手段を選んだという感じがしますね。
> TI-84CEにPythonが付いても価格上がったわけでもなく据え置きなので付加価値としてはそれなりに大きいけど実際にはあまり使えないという感じのレベルで落ち着きました。(^^;

どうも、Cortex-M0+ の ARM みたいですネ。

ref. TI-84 Plus CE Python について - Qiita
https://qiita.com/inachi/items/8ed6f3da7c45b3b51405

ref. Adafruit Interviews Texas Instruments Education about Python on Calculators and more! @TICalculators #TICodes
https://blog.adafruit.com/2021/06/25/adafruit-interviews-texas-instruments-education-about-python-on-calculators-and-more-ticalculators-ticodes/

ref. ATSAMD21E18 - microchip
https://www.microchip.com/en-us/product/atsamd21e18

価格はン百円程度らしく、256KB of flash and 32KB of SRAM との事。
upython を動かすには、これくらいのストレージが欲しい様ですネ。

今回は co-processor 付加で解決を図った様ですが、いずれは、co-processor部を更新して凌ぐか、本体をまるごと更新するか、という選択に ?

> あ、現行のカラーのCEからではなくモノクロのSilverEditionくらいからですね。

あれ、そうでしたの !
いやぁ、不勉強でした。

> 残念ながらCG100に関しては今のところは明るい話題はほぼ無い状態です。(^^;
> 空き容量が16MBから4.5MBに削減されてるあたり、アドイン追加があったとしてもOS組み込みの公式アドインに限定されそうですし。

CG100のストレージは縮小してしまいましたが、何でだろう ?
一つには、ユーザーデータ保存専用が 4.5MB で、システム領域 (11MB 程度)と区分されたり、とか ?
システム領域はFirm更新以外にはprotect が掛かっている、なんて。

> ここはバージョンアップでどうにでもなりますから少しずつでも改善されることは期待できそうですね。
> とはいえ、潜在的CASIOユーザーがCG100にすんなり行くかどうかはなんとも言えず、一気にNmuworks方面に流れていきそうな感じも無くはなく?

そこは、Numworks, TI, CASIO で、ユーザーが何を求めるか、でありますネ。

> スマホ&タブレット禁止の学校で使うとなればなら実機しか無いわけで、アプリ版が実機販売に影響あるとは思えないですが、実際のところアプリ版の方が数倍速いので実機の速さが霞んでしまうというのはあるかもしれません。(^^;

おフランスでは「スマートフォンをガッコでは使わせないよーん」だったりしますから、電卓販売の余地はありそう。
でも、あとは学校による様でもあり。
スマホアプリだと、スマホのパワーに比例した速度が出ますから、実機は「そっちのけ」であります。

> その点、CASIOはエミュで実機と速度同じというのはいい落とし所だったのかもですね。

それは、Add Ons 開発で、実機での実行速度を見るために、敢えて速度を落としているという ...

> あの固いガードのブリスターパックは下手すると開封時に怪我しちゃいますから紙パッケージ大歓迎です。

昔のブリスターパック、モノによっては、パカッと外れるのがあった様ですが、今は盗難防止で、ハサミで切らないとならない。
そういや、昔のHP電卓は、紙パッケージでしたネ。

> その昔は関数電卓はガラスケースに鎮座していたものですが、今や吊るし売りですから、時代の流れといえばそういう時代なのですよね。(^^;

そうでした !
昔、百貨店で HP15C を扱っている店子があって、ガラスケースに鎮座していたのをみて、ため息をついたのですが、その後、ようやく購入した、という思い出があります。