Есть знатоки языков программирования C/C++ ?

Полезные ссылки:
Метеоцентр.Азия - наш сайт с высокодетализированными прогнозами погоды по пунктам Pоссии и мира
Облегчённая версия Метеоклуба (для смартфонов)

Есть знатоки языков программирования C/C++ ?

Сейчас в Метеоклубе:
Участников - 0
Максимальное одновременное количество посетителей: 308 [2 Ноя 2013 22:42]
Гостей - 296 / Участников - 12

 - Начало - Ответить - Статистика - Pегистрация - Поиск -

МЕТЕОКЛУБ : независимое сообщество любителей метеорологии (Европа и Азия) : ФОРУМ О ПОГОДЕ И ПРИРОДЕ / Техника / Есть знатоки языков программирования C/C++ ?
Автор Сообщение
Corvus
Автор сайта

###Corvus###
# Дата: 2 Дек 2010 09:16


Сишный скрипт нужно переписать на РНР. В частности, из вот этого фрагмента:

void ComputeFeedForwardSignals(double* MAT_INOUT,double* V_IN,double*
V_OUT, double* V_BIAS,int size1,int size2,int layer)
{
int row,col;
for(row=0;row < size2; row++)
{
V_OUT[row]=0.0;

for(col=0;col<size1;col++)V_OUT[row]+=(*(MAT_INOUT +(row*size1)+col)*V_IN[col]);
V_OUT[row]+=V_BIAS[row];
if(layer==0) V_OUT[row] = tanh(V_OUT[row]);
if(layer==1) V_OUT[row] = logistic(V_OUT[row]);
}
}

У меня получилось вот это:

function ComputeFeedForwardSignals ($MAT_INOUT, $V_IN, $V_OUT, $V_BIAS,
$size1, $size2, $layer) {

for($row=0; $row < $size2; $row++) {
$V_OUT[$row]=0.0;
for($col=0; $col<$size1; $col++) $V_OUT[$row] = $V_OUT[$row] + ...
$V_OUT[$row] = $V_OUT[$row] + $V_BIAS[$row];
if($layer==0) $V_OUT[$row] = tanh($V_OUT[$row]);
if($layer==1) $V_OUT[$row] = logistic($V_OUT[$row]);
}

}

Непонятно, что делать с выражением
(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
Что тут имеется в виду? И как записать это на РНР?

Alter
Участник

Москва, ЮЗАО
# Дата: 2 Дек 2010 11:43 - Поправил: Alter


Возможно имеется в виду:
V_OUT[row]= V_OUT[row] + V_OUT[row]*(MAT_INOUT +(row*size1)+col)*V_IN[col]);
Кстати такие сокращенные операторы можно и в PHP записывать(+=) - должны работать
А что собственно скрипт делает, если не секрет?

Grajdanin
Участник

Санкт-Петербург, Лабораторный пр.
# Дата: 2 Дек 2010 11:55


Здесь трудно сказать, не зная смысла параметров функции
(*(MAT_INOUT+(row*size1)+col) можно было бы представить как
MAT_INOUT[(row*size1)+col], если бы MAT_INOUT был массивом однобайтовых величин.
Однако надпись запись double* MAT_INOUT пытается сказать нам об обратном. Нужно узнать что такое MAT_INOUT

Max_F
Участник

# Дата: 2 Дек 2010 15:55 - Поправил: Max_F


Grajdanin
если бы MAT_INOUT был массивом однобайтовых величин.
Однако надпись запись double* MAT_INOUT пытается сказать нам об обратном. Нужно узнать что такое MAT_INOUT


А разве есть разница, однобайтовых или каких иных величин массив? По-моему, смысл от этого не меняется.
MAT_INOUT[row*size1+col] - да, так и надо понимать.

Grajdanin
Участник

Санкт-Петербург, Лабораторный пр.
# Дата: 2 Дек 2010 20:32


Max_F
Давно не брал в руки сишек, ошибся.

Corvus
Автор сайта

###Corvus###
# Дата: 3 Дек 2010 08:24


MAT_INOUT[row*size1+col] - да, так и надо понимать

Да, именно это и имелось в виду. Всем спасибо :)

А что собственно скрипт делает, если не секрет?
Alter

Я занялся созданием методов прогноза опасных явлений погоды (туманов, в частности) с помощью нейросетевого симулирования. Делается это с помощью программы Statistica, которая может сохранять (экспортировать) результат (построенную нейросеть) в виде программки на языке Си для дальнейшего практического использования.

Ваш ответ

          Отменить *Что это?

 » Логин  » Пароль 
 
 


Поддержка: miniBB forum software © 2001-2024