Pull to refresh
-13
Сергей@kovserg

Инженер

7
Subscribers
Send message

Здорово, хорошо. Но где сама модель?

И такой вопрос какие методы посоветуете для увеличения ресурса котактора, который будет коммутировать такую схему? При каких номиналах ёмкости будет больший КПД? Достаточно ли померить на работающем двигателе межфазное напряжение и убедиться что треугольник равносторонний? И как сильно он будет деформироваться под нагрузкой?

А если сравнить с тривиальной реализацией?

vfft.c
#include <math.h>

typedef double vfft_flt;

typedef struct vfft_t {
 int p,n;     // n=2^p
 vfft_flt* w; // [n]
 // w[2*k  ]=cos(2*PI*k/n)
 // w[2*k+1]=sin(2*PI*k/n)
 void *ctx;
 void (*scale)(void* ctx,vfft_flt a); // x[]*=a
 void (*swap )(void* ctx,int i,int j); // swap(x[i],x[j])
 void (*twist)(void* ctx,int i,int j,vfft_flt *w);
 // complex *x, t=x[i]-x[j]; x[i]=x[i]+x[j]; x[j]=t*w;
} vfft_t;

static void vfft_twist_back(vfft_t *fft) {
 int n=fft->n,p=fft->p,a=n,c,d,f,g,i,j;
 vfft_flt *w=fft->w;
 for(c=1;c<=p;c++) { d=a; a>>=1;
   for(f=0;f<a;f++) {
     for(g=0;g<n;g+=d) { i=g+f; j=i+a;
       fft->twist(fft->ctx,i,j,w+(f<<c));
     }
   }
 }
}
static void vfft_twist(vfft_t *fft) {
 int n=fft->n,p=fft->p,a=n,c,d,f,g,i,j;
 vfft_flt *w=fft->w, t[2];
  for(c=1;c<=p;c++) { d=a; a>>=1;
   for(f=0;f<a;f++) {
     for(g=0;g<n;g+=d) { i=g+f; j=i+a;
       t[0]=w[f<<c]; t[1]=-w[(f<<c)+1];
       fft->twist(fft->ctx,i,j,t);
     }
   }
 }
}
static void vfft_reorder(vfft_t *fft) {
 int p=fft->n>>1,q=fft->n-1,j=0,i,k;
 for(i=0;i<q;i++,j+=k) {
   if (i<j) fft->swap(fft->ctx,i,j);
   k=p; while(k<=j) { j-=k; k>>=1; }
 }
}
void vfft_mkw(vfft_t *fft) {
 int i, n2=fft->n/2; vfft_flt *w=fft->w, k=(vfft_flt)M_PI/n2;
 w[0]=1; w[1]=0;
 for(i=1;i<n2;i++) {
   w[2*i  ]=cos(k*i);
   w[2*i+1]=sin(k*i);
 }
}
void vfft_run(vfft_t *fft,int forward) {
 if (forward) vfft_twist(fft); else vfft_twist_back(fft);
 vfft_reorder(fft);
 if (forward) fft->scale(fft->ctx,(vfft_flt)1/fft->n);
}

//---------------------------------------------------------------------------
typedef struct vfft_vector_xy_t { int n; vfft_flt *x, *y; } vfft_vector_xy_t;
void vfft_vector_xy_twist(void* ctx,int i,int j,vfft_flt *w) {
 vfft_vector_xy_t *p; *(void**)&p=ctx;
 vfft_flt *x=p->x, *y=p->y, t[2];
 t[0]=x[i]-x[j];
 t[1]=y[i]-y[j];
 x[i]=x[i]+x[j];
 y[i]=y[i]+y[j];
 x[j]=t[0]*w[0]-t[1]*w[1];
 y[j]=t[1]*w[0]+t[0]*w[1];
}
void vfft_vector_xy_swap(void* ctx,int i,int j) {
 vfft_vector_xy_t *p; *(void**)&p=ctx;
 vfft_flt *x=p->x, *y=p->y, t;
 t=x[i];x[i]=x[j];x[j]=t;
 t=y[i];y[i]=y[j];y[j]=t;
}
void vfft_vector_xy_scale(void* ctx,vfft_flt a) {
 vfft_vector_xy_t *p; *(void**)&p=ctx; int i,n=p->n;
 vfft_flt *x=p->x, *y=p->y;
 for(i=0;i<n;i++) { x[i]*=a; y[i]*=a; }
}
//---------------------------------------------------------------------------
typedef struct vfft_vector2_t { int n; vfft_flt *x; } vfft_vector2_t;
void vfft_vector2_twist(void* ctx,int i,int j,vfft_flt *w) {
 vfft_vector2_t *p; *(void**)&p=ctx;
 vfft_flt *x=p->x, t[2]; i*=2; j*=2;
 t[0]=x[i  ]-x[j  ];
 t[1]=x[i+1]-x[j+1];
 x[i  ]+=x[j  ];
 x[i+1]+=x[j+1];
 x[j  ]=t[0]*w[0]-t[1]*w[1];
 x[j+1]=t[1]*w[0]+t[0]*w[1];
}
void vfft_vector2_swap(void* ctx,int i,int j) {
 vfft_vector2_t *p; *(void**)&p=ctx;
 vfft_flt *x=p->x, t;
 i*=2;j*=2;
 t=x[i];x[i]=x[j];x[j]=t;
 i++;j++;
 t=x[i];x[i]=x[j];x[j]=t;
}
void vfft_vector2_scale(void* ctx,vfft_flt a) {
 vfft_vector2_t *p; *(void**)&p=ctx; int i,n=2*p->n;
 vfft_flt *x=p->x;
 for(i=0;i<n;i++) x[i]*=a;
}
//---------------------------------------------------------------------------
typedef struct vfft_image_t { int n,m ; vfft_flt **x, **y; } vfft_image_t;
void vfft_image_twist(void* ctx,int i,int j,vfft_flt *w) {
 vfft_image_t *p; *(void**)&p=ctx; int k,m=p->m; vfft_flt t[2];
 vfft_flt *xi=p->x[i], *yi=p->y[i], *xj=p->x[j], *yj=p->y[j];  
 for(k=0;k<m;k++) {
   t[0]=xi[k]-xj[k];
   t[1]=yi[k]-yj[k];
   xi[k]+=xj[k];
   yi[k]+=yj[k];
   xj[k]=t[0]*w[0]-t[1]*w[1];
   yj[k]=t[1]*w[0]+t[0]*w[1];
 }
}
void vfft_image_swap(void* ctx,int i,int j) {
 vfft_image_t *p; *(void**)&p=ctx; int k,m=p->m;
 vfft_flt *xi=p->x[i], *yi=p->y[i], *xj=p->x[j], *yj=p->y[j], t;
 for(k=0;k<m;k++) {
   t=xi[k];xi[k]=xj[k];xj[k]=t;
   t=yi[k];yi[k]=yj[k];yj[k]=t;
 }
}
void vfft_image_scale(void* ctx,vfft_flt a) {
 vfft_image_t *p; *(void**)&p=ctx; int i,n=p->n, k,m=p->m;
 for(i=0;i<n;i++) {
   vfft_flt *xi=p->x[i], *yi=p->y[i];
   for(k=0;k<m;k++) {
     xi[k]*=a; yi[k]*=a;
   }
 }
}
//---------------------------------------------------------------------------

#include <stdio.h>
#include <math.h>

int main(int argc,char* argv) {
 enum { P=4, N=1<<P }; int i;
 double x[N],y[N],w[N]; vfft_t vfft[1]; vfft_vector_xy_t v[1];

 v->n=N;
 v->x=x;
 v->y=y;
 for(i=0;i<N;i++) { x[i]=cos(i*2*M_PI*3/16+0.7); y[i]=0; }

 vfft->p=P;
 vfft->n=N;
 vfft->w=w;
 vfft->ctx=v;
 vfft->scale=vfft_vector_xy_scale;
 vfft->twist=vfft_vector_xy_twist;
 vfft->swap =vfft_vector_xy_swap;
 vfft_mkw(vfft);

 printf("x: "); for(i=0;i<N;i++) printf(" %6.3f",x[i]); printf("\n");
 printf("y: "); for(i=0;i<N;i++) printf(" %6.3f",y[i]); printf("\n");

 vfft_run(vfft,1);
 printf("freq\n");
 printf("x: "); for(i=0;i<N;i++) printf(" %6.3f",x[i]); printf("\n");
 printf("y: "); for(i=0;i<N;i++) printf(" %6.3f",y[i]); printf("\n");

 vfft_run(vfft,0);
 printf("time\n");
 printf("x: "); for(i=0;i<N;i++) printf(" %6.3f",x[i]); printf("\n");
 printf("y: "); for(i=0;i<N;i++) printf(" %6.3f",y[i]); printf("\n");
 return 0;
}

А теперь главный вопрос: какую цель приследовала данная реформа?

вопросом представления чисел в уравновешенной троичной системе счисления, то скорее всего знаете про два наиболее часто встречающихся варианта: «пара бит на один трит» и «знаковые слои» (что в принципе сводится к той же паре бит на один трит, но уже при иной организации).

А что мешает использовать основание 3^5=243 и по байтам распихать, 5 тритов в 1 байт. А для ALU использовать таблицы?

И что мешает иметь внешний накопитель в рюкзаке и по wifi6 к нему цепляться?

А есть надо тонкий накопитель то есть sdcard

А что если эти 30-40 крупных центров не справятся с защитой от безпилотников? Может стоит строить множество мелких вместо нескольких огромных. И главный вопрос а для каких таких данных они вдуг понадобились? Дата центры строят под конкретные задачи, а не просто что бы были.

Ох уж эти креативные креативы:

3-ий наколенник в подарок
3-ий наколенник в подарок
вилка убийца
вилка убийца

А само государство это критическая инфрастуктура?

Было хорошо сделали лучше, лучше бы было хорошо. Принтеры хоть опять не поломали?

Напишите что пишет sudo dd if=/dev/mmcblk0 of=/dev/zero bs=4M count=100 (скорость чтения sd карты) и 7z b и clpeak и tinymembench

и как плата разогревается при перекодировании видео, с помошью ffmpeg
ffmpeg -y -loglevel warning -hide_banner -stats -i src_film.mp4 dst.mp4
watch -n 1 vcgencmd measure_temp
watch -n 1 'awk '"'"'{printf "%3.1f°C\n", $1/1000}'"'"' /sys/class/thermal/thermal_zone*/temp'

да и простабильнось wifi можно было бы рассказать, нагрузив его iperf-ом.

ps: там же еще и npu есть, и опционально ai-hats

Интересно, а почему в мобольной firefox нет поддержки прокси серверов (хотя раньше была)?

Диск убийца. Поля в десятки ГВольт на метр никого не смущают?

Ждём тревожных чемоданчиков лёда шекер от IKEA.

Надо дублировать сайты в доменной зоне onion.

ps: по поводу nic ru уже давно оттуда свалили, потому что они охренели(только матом) в край.

Раскрываются они во всей красе в БПФ и методе перевала из ТФКП и в физике в вынужденных колебаниях да и в оптике. Даже если просто рассмотреть гометрическу прогрессию S_n=1+q+q^2+...+q^{n-1}=\frac{1-q^n}{1-q} и подставить туда q=W^k_n=e^{ \frac{2\pi i k}{n} } уже можно будет узреть прекрасное, особенно если объяснить область применения.

Я думаю что проще сначала рассмотреть числа вида x=a+b\sqrt{r} где r=2 или 5 или другойе число их которого корень не представим в виде рационального числа, a и b это рациональные числа (дроби). Определить сопряженное \bar{x} = a - b\sqrt{r}, показать что такие числа можно склыдвать (x_3 = a_1*x_1 + a_2*x_2), делить(x_3=x_1/x_2=x_1*\bar{x_2}/(x_2*\bar{x_2})), умножать (x_3 = x_1 *x_2) и потом можно делать так что бы после вычислений b оставалось 0. Например norm(x)=x * \bar{x} или x + \bar{x} и т.п. В таком виде эти числа не будут вызывать не доумения и протеста.

А потом, так как результат явно не содержит \sqrt{r}, то почему бы не попробывать необычного и выбрать r = -1 и посмотреть что из этого выйдет. И обнаружить что существуют скрые очень странные числа, которые назвали комплексными. Так же можно использовать матрицы типа M=\begin{pmatrix}0 & 1 \\ -1 & 0 \end{pmatrix} для демонстрации, что можно их использовать вместо чисел и они будут себя вести как мнимая единица. Так сказать добавить осизаемости.

I=2 кA, U=1e8 В, R=6400 км, P=U*I, S=4*pi*R^2
ρ=P/S= 0.4мВт/м^2

Каждая модель будет снабжаться ТСПУ, ТС ПИОТ-ом, и пользователи должны будут авторизироваться через ЕСИА, и каждая сессия должна быть маркирована честным знаком, и обязательно быть зарегистрирована в едином реестре единых реестров. А также регулярно “подавать” отчеты на госуслугах в портале заявителей оператовов бям. В в случае не исполнения и наружений обширный выбор штрафов.

1
23 ...

Information

Rating
4,462-nd
Location
Калужская обл., Россия
Date of birth
Registered
Activity

Specialization

Инженер встраиваемых систем, Архитектор программного обеспечения
Старший
From 750,000 ₽
Linux
C++
PHP
Java
Docker
SQL
Hibernate
Java Spring Framework
Высоконагруженные системы