Кресты / Говнокод #9281 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
void Transponse()                                       // Транспонировать матрицу
   {
      m12 = m21; m13 = m31; m14 = m41;
      m21 = m12; m23 = m32; m24 = m42;
      m31 = m13; m32 = m23; m34 = m43;
      m41 = m14; m42 = m24; m43 = m34;
   }

Запостил: Artur Artur, (Updated )

Комментарии (22) RSS

  • Transponse ... отсюда все беды. И элементы феерично объявлены.
    Ответить
  • Интересно посмотреть на функцию нахождения определителя
    Ответить
  • и никто пока не увидел, что значения проябываются
    Ответить
  • Нужно придумать директиву, чтобы в методе справа от = были копии старых значений. Тогда такой код будет естественен.
    Ответить
    • ты имеешь в виду result[i][j] = src[j][i] ... return result?
      это, будет новейшая технология, не побоюсь этого слова - парадигма
      запатентую и назову её фукцурным... функциративным... функционирующим программированием, надо подумать в общем над названием
      Ответить
      • Назови её резервирующим программированием. Потому что при входе в метод сохраняется копия. Он делает код нагляднее и чище. Подсчитано, что резервирующее программирование, за счёт уберегания программиста от многих ошибок, сокращает количество ошибок в коде в 2.71828 раз и повышает производительностью труда программиста в 3.141592653589 раз.
        Ответить
    • verilog, nonblocking assignment
      begin
          a <= b
          b <= c
          c <= a
      end
      Все эти присваивания выполнятся одновременно.
      Ответить
  • Не пример правильного кода, но хоть работает:
    std::tie(m12, m13,  m14,
    m21, m23, m24,
    m31, m32, m34,
    m41, m42, m43)
    =
    std::tie(m21, m31, m41,
    m12, m32, m42,
    m13, m23, m43,
    m14, m24, m34);
    Ответить
  • не вникал в суть логики но это не гавнокод. писал его человек понимающий как как работает процессор. это оптимизация для CPU branch prediction.
    Ответить
  • Если каждый элемент в матрице - это не число, а класс с перегруженным знаком "равно", то всё окей.

    Но только с программой. А с мозгом кодера нифига не окей 🙁
    Ответить
  • Это транзакционная память, там эффект от присваивания не видно до киммита.
    Ответить
      • есть такая база где-то в недрах гугла - spanner. согласно их статье транзакции у них не видят свои же врайты.
        Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8