Skip to content

Conversation

@DavidIkov
Copy link
Collaborator

Now its easier to add new types of synapses and neurons. Code reading should be easier.

Comment on lines +63 to +66
else
{
throw std::runtime_error("Type is not supported.");
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это возможно сделать не ошибкой в рантайме, а ошибкой компиляции.
И последнее будет предпочтительней.
Используй static_assert, например.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тогда оно вообще не будет работать, AllVariants содержит то чего нету в SupportedTypes, и это нормально.
но в твоем случае это выдаст ошибку.
такая ошибка должна вылетать в рантайме, нельзя это определить во время компиляции

@DavidIkov DavidIkov deployed to pr-review-required January 27, 2026 06:30 — with GitHub Actions Active
* @param step_n Step number.
* @return Message that should be sent from queue.
*/
inline MessageQueue::const_iterator calculate_projection_dispatch(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне, честно говоря, очень не нравится это dispatch, как будто он не вычисляет проекцию, а занимается чем-то другим, а вычисление проекции надо отдельно.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

почему другим? тут весь код вычисления проекции, больше кода с проекциями нету, отделять нечего, только если еще больше разбивать функцию

Copy link
Collaborator

@a-vartenkov a-vartenkov Jan 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я конкретно про слово dispatch в названии функции. Когда пользователь её вызывает, он по идее ожидает что она что-то продиспетчеризует - направит, вышлет или распределит, нет? А она возьмёт и вычислит что-то вместо этого. У нас там есть типа dispatch messages, и оно раскидывает сообщения, а это по идее рассчитывает.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

согласен, если просто смотреть на название то может возникнуть недопонимание, но это не функция которую будет вызывать пользователь, это просто функция распределитель, она вызывается другими распределителями, пользователь ее впринципе не вызывает.
но можно было бы придумать как назвать получше, мб что то по типу "calculate_projection__dispatch" что бы разделить смысл?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не знаю, я бы может быть убрал dispatch вообще, она вычисляет проекцию. На самом деле, я не знаю, calculate_general_projection или что-то подобное, может быть? Потому что да, по названию это вызов какой-то диспетчеризации, а вызывается вычисление, название обманчивое.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants