/*=============================================================================================*/
/* Project name: emtws01_test */
/* Project version: 1.0.0.4 */
/*---------------------------------------------------------------------------------------------*/
/* Generated by Aqualis (algorithm and equation analyzer for lightwave simulation) */
/* Aqualis version: 186.0.3.0 */
/* Generated date: 2026/04/11 14:07:30 */
/*=============================================================================================*/
#include <stdio.h>
#include <stdlib.h>
#include <complex.h>
#include <math.h>
#undef I
#define uj _Complex_I
int i;
int j;
int i0001;
int i0002;
int i0003;
double complex z0001;
int *i1001;
int i1001_size[1] = { -1 };
double complex *z1001;
int z1001_size[1] = { -1 };
double complex *z2001;
int z2001_size[2] = { -1,-1 };
extern void zgesv_(int *n, int *nrhs, double complex *a, int *lda, int *ipiv, double complex *b, int *ldb, int *info);
int main()
{
  z2001_size[0] = 4;
  z2001_size[1] = 4;
  z2001 = (double complex *)malloc(sizeof(double complex)*z2001_size[0]*z2001_size[1]);
  z1001_size[0] = 4;
  z1001 = (double complex *)malloc(sizeof(double complex)*z1001_size[0]);
  for(i=0; i<=z2001_size[0]-1; i++)
  {
    for(j=0; j<=z2001_size[1]-1; j++)
    {
      /*ハンケル関数計算テスト*/
      z0001 = j0(1.0E-1*(i+2*j+1))-y0(1.0E-1*(i+2*j+1))*uj;
      z2001[i+j*z2001_size[0]] = z0001;
    }
  }
  for(i0001=0; i0001<=z1001_size[0]-1; i0001++)
  {
    z1001[i0001] = 0;
  }
  for(i=0; i<=z1001_size[0]-1; i++)
  {
    for(i0001=0; i0001<=z2001_size[1]-1; i0001++)
    {
      z1001[i] = z1001[i]+z2001[i+i0001*z2001_size[0]]*i0001;
    }
  }
  i0001 = z2001_size[0];
  i0002 = 1;
  i1001_size[0] = i0001;
  i1001 = (int *)malloc(sizeof(int)*i1001_size[0]);
  zgesv_(&i0001,&i0002,z2001,&i0001,i1001,z1001,&i0001,&i0003);
  i1001_size[0] = -1;
  free(i1001);
  for(i=0; i<=z1001_size[0]-1; i++)
  {
    printf("%27.12e%27.12e\n",creal(z1001[i]),cimag(z1001[i]));
  }
  z1001_size[0] = -1;
  free(z1001);
  z2001_size[0] = -1;
  z2001_size[1] = -1;
  free(z2001);
  return 0;
}
