Eigen:C++行列計算ライブラリ

C++用行列計算ライブラリを探していて、Eigenを見つけた。

いや、どうもかつて見たことがあったはず。

GSL(Gnu Scientific Library)よりこれの方が優秀と思われる。

下記参照

http://eigen.tuxfamily.org/index.php?title=Main_Page

下記も参照

https://tech.preferred.jp/ja/blog/eigen/
https://qiita.com/yohm/items/a03006790dc1e54a87be
https://www.regentechlog.com/2018/12/09/eigen-note/
https://qiita.com/vs4sh/items/7e8bc95250db8d88bc41

 

さて、最近のうちの連中はどうもトロイから導入手順を記載しておこう。

 

DLしたファイル(eigen-3.3.7.tar.bz2)を解凍・展開。

展開されたファイル INSTALL を読んでその指示に従う。

指示には「開始前の説明 Explanation before starting 」とあるので

ちゃんと読むべき。うちの連中だとまあこのファイル自体を読まないだろうな。

ここでは、方法2の CMake を使った導入を行う。

INSTALLファイルが置かれているディレクトリを 'source_dir' と呼ぶ。

導入作業開始前に 'build_dir' と呼ぶ別のディレクトリを作っておいて、

下記を実行。

cd build_dir
cmake source_dir
make install

"make install" では管理者権限が必要になるかもしれない。

"make install" 実行の前に下記に示す cmake の出力をよく読むべきである。

-- ************************************************************
-- Configured Eigen 3.3.7
-- Some things you can do now:
-- --------------+--------------------------------------------------------------
-- Command | Description
-- --------------+--------------------------------------------------------------
-- make install      | Install Eigen. Headers will be installed to:
--                          | <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>
--                          | Using the following values:
--                          | CMAKE_INSTALL_PREFIX: /usr/local
--                          | INCLUDE_INSTALL_DIR: include/eigen3
--                          | Change the install location of Eigen headers using:
--                          | cmake . -DCMAKE_INSTALL_PREFIX=yourprefix
--                          | Or:
--                          | cmake . -DINCLUDE_INSTALL_DIR=yourdir
-- make doc         | Generate the API documentation, requires Doxygen & LaTeX
-- make check      | Build and run the unit-tests. Read this page:
--                          | http://eigen.tuxfamily.org/index.php?title=Tests
-- make blas         | Build BLAS library (not the same thing as Eigen)
-- make uninstall  | Removes files installed by make install
-- --------------+--------------------------------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sugi/eigen-3.3.7_build_dir

-- ************************************************************

要するに、引数無しで  sudo make install すれば

/usr/local/include/eigen3 ディレクトリに

Eigenのヘッダファイルがコピーされる。

ついでなのでさらに make doc して make check してみた。

make check の結果は以下の通り。

787個のテストのうち1個(614番目)だけ通らなかったもよう。

 99% tests passed, 1 tests failed out of 787
Label Time Summary:Official       = 376.35 sec*proc (676 tests)Unsupported    =  59.80 sec*proc (110 tests)
Total Test time (real) = 563.87 sec
The following tests FAILED: 614 - sparseqr_2 (Child aborted)Errors while running CTestCMakeFiles/check.dir/build.make:57: recipe for target 'CMakeFiles/check' failedmake[3]: *** [CMakeFiles/check] Error 8CMakeFiles/Makefile2:355: recipe for target 'CMakeFiles/check.dir/all' failedmake[2]: *** [CMakeFiles/check.dir/all] Error 2CMakeFiles/Makefile2:362: recipe for target 'CMakeFiles/check.dir/rule' failedmake[1]: *** [CMakeFiles/check.dir/rule] Error 2Makefile:292: recipe for target 'check' failedmake: *** [check] Error 2

さらについでに make blas もしておいた。

以上

 

 

 

 

 

 

MAXIMA のアンインストールで少し問題

MAXIMA5.42.2をアンインストールした。アンインストーラーは成功といったが、

Windowsの「アプリと機能」からMAXIMAが消えない。

アンインストールボタンが表示されているので押してみたが、

Uninstall.exe がないといわれておしまい。お手上げ。うーん、不快。

 

その後、再度同じ版を導入してアンインストールしなおしたら消えた。

無事解決。

 

ブラザーMFC-935CDN復活

一昨日(6月13日)、急に、家内のPCで印刷できなくなった。

プリンタはブラザーのMFC-935CDNだ。

昨日(6月14日)、家内に要請されて解決に乗り出したのだが原因不明。

特段思い当たる節はなかったのだが、

しいていえば、2020/06/12にKB4560960の更新がかかっていたのが気になったぐらい。
ブラザーのHPを見に行っても特段の記述なし。

とりあえずプリンタドライバの削除+再導入などを試みたが効果なし。

本日(6月15日)、ブラザーのHPを覗いてみると、本日付け更新で、

「Windows10からの印刷が突然できなくなったお客様へ
Microsoft社より、Windows10において、更新プログラム適用後印刷ができなくなる不具合が報告されております。詳しくは下記のQ&Aをご覧ください。
(Windows10)更新プログラム適用後、印刷できなくなった」

それで、当該Q&Aを見ると、

Microsoft社より、Windows10において、更新プログラム適用後印刷ができなくなる不具合が報告されております。
該当の更新プログラムをアンインストールすることで改善するかご確認ください。」

だと。

該当の更新プログラムは、

「[KB4560960]もしくは、[KB4557957]と書いてある更新プログラムがあるか確認してください。」

だって。

うちの場合は、[KB4560960]がビンゴ。

こいつをアンインストールして無事解決。

しかし、私のPCにもこの更新は適用したのだが、こっちは大丈夫。なぜ?

さらに一言。

ブラザーのサポートひどすぎ。

チャットの方が応答速いよ、速いよ、とチャットに誘導しまくっているくせに、

あれこれ入力させられて、やっとオペレータ呼出しにたどり着いたと思ったら、

「オペレータを探しています」で延々と待たされた。画面にはSTOPボタン。1時間ほど待っても結局応答なし。ようするにSTOPボタンを押すのを待っているだけか。

まったく、こいつら、ユーザを舐めてるな。サポートする気なし。

昨今、なんでもコロナのせいにすれば通ると思ってやがる。

まったくひどいもんだ。

こんな調子だと次はキャノンに乗り換えかな。

 

 

 

 

 

 

 

PDFファイルを本のように見開きにする方法

ファイル=>プロパティ=>… で

「見開き(表紙)」を設定。

1ページ目(表紙)だけ1ページ表示で2ページ目から見開き(2ページ)表示になる。

 

 

Digital Mars C/C++ compiler

・未解決問題

>dmc -Bj -j0 hello.c

link hello,,,user32+kernel32/noi;

OPTLINK (R) for Win32 Release 8.00.16

Copyright .....

http://.....

OPTLINK : Warning 23: No Stack

OPTLINK : Warning 134: No Start Address

>hello

このバージョンの hello.exe は、実行中の Windows のバージョンと互換性がありません。…

おそらく exe の実行エラーは No Start Address か No Stack に起因するのだろう。

―――――

DMのリンカが他のコンパイラVisual Studioなど)と同じ名前の環境変数からリンクオプションを読み出していて、かつ、VSのリンカと互換性がなかったりして、正しいスタートアップ・ルーチンやライブラリがリンクされていないのかもしれない。

単に、main 関数の名前をミスっているのかもしれない。

―――――

main 関数の名前をミスった場合

下記ソースがエラーにならずに exe ファイルまでできてしまう。

さすがにリンカが警告は出す。

しかも実行もできる。実行時エラーにならない。

実行結果は正しくない。

E:\dmc>type hello2.c

 #include <stdio.h>
void Main(void){

    printf("hello world.\n");

}

 

E:\dmc>dmc -Bj -j0 hello2.c
link hello2,,,user32+kernel32/noi;
OPTLINK (R) for Win32 Release 8.00.16
Copyright (C) Digital Mars 1989-2013 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
OPTLINK : Warning 134: No Start Address


E:\dmc>hello2  おい、実行できるのか。エラーも出ない。

         さすがに正しい出力は出ない。

E:\dmc>

 

 

 

Windows 10 用リモート支援「クイック アシスト」

これって使えるかな。

 

https://snow-white.cocolog-nifty.com/first/2016/09/windows-10-7c10.html

 

 

起動するとこうなる。

f:id:hikaru149:20200518050512p:plain

クイック アシスト起動画面

f:id:hikaru149:20200518051058p:plain

セキュリティコード共有画面

クリップボードにコピーってなに?