Си диез / Говнокод #8048 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
double[] КосинусФПриВходе = {1,0.99939,0.997564,0.994521,0.990268,0.9848,0.97814,0.97029,0.961261,0.9510565,0.93969,0.927183,0.913545,0.898794,0.88294,
                                     0.866025,0.848048,0.8290375,0.809016,0.78801,0.76604,0.74314,0.71933,0.69465,0.66913,0.64278,0.61566,0.58778,0.55919,0.5,
                                     0.46947,0.43837,0.40673,0.3746,0.34202,0.309016,0.27563,0.24192,0.20791,0.17364,0.13917,0.104528,0.06975,0.034899,0,-0.03489,
                                     -0.06975,-0.104528,-0.13917,-0.17364,-0.20791,-0.24192,-0.27563,-0.309016,-0.34202,-0.3746,-0.40673,-0.43837,-0.46947,-0.5,
                                     -0.55919,-0.58778,-0.61566,-0.64278,-0.66913,-0.69465,-0.71933,-0.74314,-0.76604,-0.78801,-0.809016,-0.8290375,-0.848048,
                                     -0.866025,-0.88294,-0.898794,-0.913545,-0.927183,-0.93969,-0.9510565,-0.961261,-0.97029,-0.97814,-0.9848,-0.990268,-0.994521,
                                     -0.997564,-0.99939,-1,-0.99939,-0.997564,-0.994521,-0.990268,-0.9848,-0.97814,-0.97029,-0.961261,-0.9510565,-0.93969,-0.927183,
                                     -0.913545,-0.898794,-0.88294,-0.866025,-0.848048,-0.8290375,-0.809016,-0.78801,-0.76604,-0.74314,-0.71933,-0.69465,-0.66913,
                                     -0.64278,-0.61566,-0.58778,-0.55919,-0.5,-0.46947,-0.43837,-0.40673,-0.3746,-0.34202,-0.309016,-0.27563,-0.24192,-0.20791,
                                     -0.17364,-0.13917,-0.104528,-0.06975,-0.034899,0,0.03489,0.06975,0.104528,0.13917,0.17364,0.20791,0.24192,0.27563,0.309016,
                                     0.34202,0.3746,0.40673,0.43837,0.46947,0.5,0.55919,0.58778,0.61566,0.64278,0.66913,0.69465,0.71933,0.74314,0.76604,0.78801,
                                     0.809016,0.8290375,0.848048,0.866025,0.88294,0.898794,0.913545,0.927183,0.93969,0.9510565,0.961261,0.97029,0.97814,0.9848,
                                     0.990268,0.994521,0.997564,0.99939};
  
        private void XbYb()
        {
            double x;
            x = AB * КосФ;
            Xb = (int)x;
            double f=4*Ya*Ya-4*(Xa*Xa+Ya*Ya+Xb*Xb-2*Xa*Xb-AB*AB);
            if (счетчик >= 0 && счетчик <= 89) Yb = (2 * Ya + (int)Math.Sqrt(f)) / 2;
            else Yb = (2 * Ya - (int)Math.Sqrt(f)) / 2;
        }
        
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (счетчик == КосинусФПриВходе.Length) счетчик = 0;
            КосФ=КосинусФПриВходе[счетчик];
            XbYb();
            pictureBox1.Invalidate();
            счетчик++;
        }

1C головного мозга

Запостил: psina-from-ua psina-from-ua, (Updated )

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

  • Кстати, когда табличный косинус быстрее честного?
    И нахера писать таблицу руками?
    Ответить
    • >когда табличный косинус быстрее честного?
      всегда. если конечно память не на перфокартах
      Ответить
      • А когда он точнее честного?
        А когда этот выигрыш в скорости серьёзно на что-то влияет?
        Что делать, если нужного значения в таблице не оказывается?
        Ответить
    • >И нахера писать таблицу руками?
      Вычисление на докомпилляционном этапе
      Ответить
        • вообще я помню процедуры всяких эффектов и ландшафтов, где таблицы синусов-косинусов вычислялись заранее. правда, они именно вычислялись, а не вписывались как в сабже
          Ответить
    • Да там сейчас выигрыш - копейки. Современные процы быстрее вычисляют маленькое разложение тригонометрической функции в ряд, чем память отправляет строку в кеш из lookup таблицы. Да и точность повыше при этом у первого варианта.
      Ответить
      • absolut тут прав fsincos ~ 100 микроопераций.
        при оптимальных раскладах - 25-30 тактов.
        даже L2 быстрее.

        что конечно не оправдывает подобных быдлокодеров.
        Ответить
        • >fsincos ~ 100 микроопераций
          Атцы раскладывают в ряд. Это также быстро, как и таблица на современных процах, но с лучшей точностью.
          При активном применении лукаптаблиц кешмисы замучают.
          Ответить
          • >Атцы раскладывают в ряд.
            >Это также быстро, как и таблица на современных процах, но с лучшей точностью.
            Код в студию! Атцы, это наверное от слова ацтой, который не может в ряд Тейлора.
            И не представляет себе сколько же операций сложения, возведения в степень и деления нужно для того чтобы вычислить синус с 32-битной точностью
            Ответить
            • Атцы - мем с гейдева. Атцы рекомендуют всегда делать так, как поступали наши предки на допотопных компах: оптимизировать всё, вся и всегда без исключений. Периодически атцы постят свой код в различных тредах, который к обсуждаемому вопросу порой и отношения не имеет, и меряются своим МПХкодом и таймингами.
              Ответить
              • Код в студию!

                >Атцы - мем с гейдева.
                Забудь о геймдеве, это говнокод, детка.
                Ответить
  • оZ"M)K,U"U$D.U EL R!R:M:B"CC)F,C?X(Y.SD!C!N?A"C$Y?J$R?U.J:T,Z.N!L"MY!V(Y,X:E?FR.Y:V,P.N:Y"J?G:G EZ$Q:J.GA!G,T H:F(D$E C(O B!O(R,E N(M(X)I!A"V$G.I!G$Q,E$LN"H$NE$K,I:A.F F,BG?GJ)L$T?S,H"U"C(K"M!L"H$D?E.E G"E)I"O,S)Q)W(U!R.H.DL,X?W!K$W?A)MR,H!Y"F:GS"M:L V"P)O$OT,U J!F!NO(E!P!R)E!D(J J:N:W:F.B)T G.Z,X"E?B)M(F Q$Q!X,X$L.M)F?B$F!I"T?Z(C?X)B,U$B?L,U O G:J)E.R(K M N.P,Z.E$U?BH"B.J:C)I!O"F,R)G$M?U)B"J)V$L$M?Q,T.G A.J)O O"E:M K"I(P)S(M?O:V:K.T"JM?C$F.W!T?Z.R:ZG$Z(B"D(F?X O(U!KO:T"G$F(X)A$C:M?BP(KI)GC(R)B)IZ"K$F,Z.O:U T,W,J(K$R"S$Q,O)K)Q:W.Q!J$K S$IA.S?V,M.AL)I,L S?E M!XF I:Y$N,P G K)G)Q?O"T.E,L"V.L$Q.V"Y)A,C,Q!Z!UM!L:D"U?I:C.M:X:X$OP$W,I.O(S.K.V,J!PW.S"C.VT W:T(C,M)D)R$A,Z:N"DS Q D(F.E?Y.U$E.E)OX"R(A)B,Z(K,I(U!OH.D)O$Z.S"D$I(T S!F)I,G(TY(C.K,G I(E$P!V!FBP)V,I.K.J(R)U?B:N(H)S,Q.V W"Q:H$NL.Z)X!Z!O.K.X?Y$Z)Z$E.F(E!E.W.W!I.X,E,Q!R.L$N)B A"L!T:R!I,DW"L)R(K)O,U?Y:A,F?Z(D:I A.T!U,U)DT,J,T$C(A"I"K.H.J.P$O)W"U)Z?I(B.V$F V)V!J(X)E"B V,Z!G"G:T(W?V"B!P.F$V"E)SI)K$T!CA$I)M?P$J)R$E:VP.O,W(V!J,N,K"K?N!R(G,K!M.E T,GO.Z?PO?T!F!F)I,J(K$M?EFO!K"Z$R"B.W!F,W X E$C:K:L(E V.S S$K$Q,C)I.M)GG,WP"M,M"K C(K!B.E(Q"K"T?B$XD.M.T,L.W:U!G?U!O!E$C?K"U!N.S?D"S!P?Y B"N!C(S,G C GH(Y?N,I(P"G,X)B"L.V:Y)G,X$TB.J"Q,L(GV"QV)Q(X.KNU)WT.N?QF(B I,H Z"C(F(N$I?J?A?W:R W,Z?O:I E?L)E E U"D:S:G T,Q.A(O,KJXN"G?K"A(I,S,A:B!L(T"L.CS,R)BK!U!H"I?Y,O$Q:M.E"X(D)H.L!A)T:E!S IQ(K:Q(IV$X?HB,E)NT.H?T"S!B T"Q)X A:N,S)J)P.C?T!Y?U?H?I?U,T Y!J(Q:X!D,D"V$V.Y$F:V.O(S$D"C$YЭEXPZXFPSJORDSLAPCJVGBGSMMTMNMHYXYYRUJIYLYJYTWYZSURGQHWCOKVUSOOCHTQVIDBHWCRPOIWWXMENUQMYQCBKMRJPQXNRYDWE
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8