2018年8月31日金曜日

Julia

この投稿が面白かったので、Juliaの練習を兼ねてちょっと遊んで見る。
https://twitter.com/solove_math/status/1035480802144833536

==ここからコード==
using Plots

function func2(n)
      return [1.0/(2.0*Float64(n) - 1.0),-1.0/(4.0*Float64(n) - 2.0) ,-1.0/(4.0*Float64(n)) ]
end

function func1(n)
      return [1.0/(2.0*Float64(n) - 1.0),-1.0/(2.0*Float64(n) )]
end

function main()

   n = 60
   y = 0.0
   y2= 0.0
   arr_y = zeros(Float64,n, 2)
   #arr_x = zeros(Int64,n)
   arr_x = 1:n
   for i in 1:n/2
      y = func1(i)
      arr_y[2*Int64(i)-1,1]= y[1]
      arr_y[2*Int64(i)  ,1]= y[2]
   end
   for i in 1:n/3
      y = func2(i)
      arr_y[3*Int64(i)-2,2]= y[1]
      arr_y[3*Int64(i)-1,2]= y[2]
      arr_y[3*Int64(i)  ,2]= y[3]
   end
   for i in 2:n
      arr_y[i,1]= arr_y[i,1] + arr_y[i-1,1]
      arr_y[i,2]= arr_y[i,2] + arr_y[i-1,2]
   end

   plt = plot(arr_x,arr_y)
   gui(plt)
   readline()
end


main()
==ここまでコード==


2018年8月22日水曜日

NASA's servers with worldwindjava 1.5.1 on Linux

At least JDK-10.0.2 can communicate https servers of NASA, but older versions do not.
As far as I can see there are problems regarding SSL on older versions of JAVA.
If you are struggling with https connection, please try to use new versions.

2018年7月20日金曜日

tele-lens 問題解決

googleカメラを使うための設定をするとtele-lens (x2 zoom lens)が使えなくなる問題解決。
純正カメラアプリのoptionからマニュアルモードでteleレンズを選択すると、強制的に切り替えられる。


2018年7月17日火曜日

preload in mapproxy

mapproxyは予めキャッシュをダウンロードしておいて、レスポンスを高めることができるみたい。

seedの項目参照。

https://mapproxy.org/docs/nightly/seed.html

2018年5月25日金曜日

lubuntuでウィンドウを縦方向に最大化

.config/openbox/lubuntu-rc.xml

<keyboard>セクションに、

<keybind key="W-A-h"> <action name="ToggleMaximizeVert"/></keybind>
を追加。

Windows key + Alt + hがキーバインド

2018年3月26日月曜日

octaveのfft

配列の長さで規格化されている。
キチンと書いてあるドキュメントがなかったのでここに記す。

(FFTWの結果を配列の長さ、二次元ならnx * ny、で割る)

2018年3月16日金曜日

openmp offloading のメモ

llvm clangがgpuのoffloadingに対応してるっぽいので確かめている。
上手く行ってないけど。
テスト用のコードをメモ。
#include<stdlib.h>
#include<stdio.h>
#include<omp.h>

int main(){

   int i;
   int N=100000;
   float *vec;
   float sum=0.0;

   int isDevInit = -1;
#pragma omp target map(from:isDevInit)
{
   isDevInit = omp_is_initial_device();
}

if (!isDevInit) {
   printf("run on acc. %d\n",isDevInit);
}

   vec=(float *)malloc(sizeof(float)*N);
   for(i=0;i<N;i++){
      vec[i] = (float)i;
   }
#pragma omp target map(to:vec) map(tofrom:sum)
{
   fprintf(stdout,"num dev %d\n",omp_get_num_devices());
#pragma omp parallel for reduction(+:sum)
   for(i=0;i<N;i++){
      sum += vec[i];
   }
}
   fprintf(stdout,"sum: %e\n",sum);

   free(vec);

}