• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP hypo函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中hypo函数的典型用法代码示例。如果您正苦于以下问题:PHP hypo函数的具体用法?PHP hypo怎么用?PHP hypo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了hypo函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: __construct

 /**
  *	QR Decomposition computed by Householder reflections.
  *
  *	@param matrix $A Rectangular matrix
  *	@return Structure to access R and the Householder vectors and compute Q.
  */
 public function __construct($A)
 {
     if ($A instanceof PHPExcel_Shared_JAMA_Matrix) {
         // Initialize.
         $this->QR = $A->getArrayCopy();
         $this->m = $A->getRowDimension();
         $this->n = $A->getColumnDimension();
         // Main loop.
         for ($k = 0; $k < $this->n; ++$k) {
             // Compute 2-norm of k-th column without under/overflow.
             $nrm = 0.0;
             for ($i = $k; $i < $this->m; ++$i) {
                 $nrm = hypo($nrm, $this->QR[$i][$k]);
             }
             if ($nrm != 0.0) {
                 // Form k-th Householder vector.
                 if ($this->QR[$k][$k] < 0) {
                     $nrm = -$nrm;
                 }
                 for ($i = $k; $i < $this->m; ++$i) {
                     $this->QR[$i][$k] /= $nrm;
                 }
                 $this->QR[$k][$k] += 1.0;
                 // Apply transformation to remaining columns.
                 for ($j = $k + 1; $j < $this->n; ++$j) {
                     $s = 0.0;
                     for ($i = $k; $i < $this->m; ++$i) {
                         $s += $this->QR[$i][$k] * $this->QR[$i][$j];
                     }
                     $s = -$s / $this->QR[$k][$k];
                     for ($i = $k; $i < $this->m; ++$i) {
                         $this->QR[$i][$j] += $s * $this->QR[$i][$k];
                     }
                 }
             }
             $this->Rdiag[$k] = -$nrm;
         }
     } else {
         throw new Exception(PHPExcel_Shared_JAMA_Matrix::ArgumentTypeException);
     }
 }
开发者ID:albatronic,项目名称:hermes,代码行数:47,代码来源:QRDecomposition.php


示例2: QRDecomposition

 /**
  * QR Decomposition computed by Householder reflections.
  * @param matrix $A Rectangular matrix
  * @return Structure to access R and the Householder vectors and compute Q.
  */
 function QRDecomposition($A)
 {
     if (is_a($A, 'Matrix')) {
         // Initialize.
         $this->QR = $A->getArrayCopy();
         $this->m = $A->getRowDimension();
         $this->n = $A->getColumnDimension();
         // Main loop.
         for ($k = 0; $k < $this->n; $k++) {
             // Compute 2-norm of k-th column without under/overflow.
             $nrm = 0.0;
             for ($i = $k; $i < $this->m; $i++) {
                 $nrm = hypo($nrm, $this->QR[$i][$k]);
             }
             if ($nrm != 0.0) {
                 // Form k-th Householder vector.
                 if ($this->QR[$k][$k] < 0) {
                     $nrm = -$nrm;
                 }
                 for ($i = $k; $i < $this->m; $i++) {
                     $this->QR[$i][$k] /= $nrm;
                 }
                 $this->QR[$k][$k] += 1.0;
                 // Apply transformation to remaining columns.
                 for ($j = $k + 1; $j < $this->n; $j++) {
                     $s = 0.0;
                     for ($i = $k; $i < $this->m; $i++) {
                         $s += $this->QR[$i][$k] * $this->QR[$i][$j];
                     }
                     $s = -$s / $this->QR[$k][$k];
                     for ($i = $k; $i < $this->m; $i++) {
                         $this->QR[$i][$j] += $s * $this->QR[$i][$k];
                     }
                 }
             }
             $this->Rdiag[$k] = -$nrm;
         }
     } else {
         trigger_error(ArgumentTypeException, ERROR);
     }
 }
开发者ID:TiMoChao,项目名称:xingfu,代码行数:46,代码来源:QRDecomposition.php


示例3: normF

 /**
  * normF
  * Frobenius norm
  * @return float Square root of the sum of all elements squared
  */
 function normF()
 {
     $f = 0;
     for ($i = 0; $i < $this->m; $i++) {
         for ($j = 0; $j < $this->n; $j++) {
             $f = hypo($f, $this->A[$i][$j]);
         }
     }
     return $f;
 }
开发者ID:Gyebro,项目名称:rajzteszt,代码行数:15,代码来源:Matrix.php


示例4: normF

 /**
  *	normF
  *
  *	Frobenius norm
  *	@return float Square root of the sum of all elements squared
  */
 public function normF()
 {
     $f = 0;
     for ($i = 0; $i < $this->m; ++$i) {
         for ($j = 0; $j < $this->n; ++$j) {
             $f = hypo($f, $this->A[$i][$j]);
         }
     }
     return $f;
 }
开发者ID:bestgoodz,项目名称:toko-baju,代码行数:16,代码来源:Matrix.php


示例5: tql2

 /**
  *    Symmetric tridiagonal QL algorithm.
  *
  *    This is derived from the Algol procedures tql2, by
  *    Bowdler, Martin, Reinsch, and Wilkinson, Handbook for
  *    Auto. Comp., Vol.ii-Linear Algebra, and the corresponding
  *    Fortran subroutine in EISPACK.
  *
  *    @access private
  */
 private function tql2()
 {
     for ($i = 1; $i < $this->n; ++$i) {
         $this->e[$i - 1] = $this->e[$i];
     }
     $this->e[$this->n - 1] = 0.0;
     $f = 0.0;
     $tst1 = 0.0;
     $eps = pow(2.0, -52.0);
     for ($l = 0; $l < $this->n; ++$l) {
         // Find small subdiagonal element
         $tst1 = max($tst1, abs($this->d[$l]) + abs($this->e[$l]));
         $m = $l;
         while ($m < $this->n) {
             if (abs($this->e[$m]) <= $eps * $tst1) {
                 break;
             }
             ++$m;
         }
         // If m == l, $this->d[l] is an eigenvalue,
         // otherwise, iterate.
         if ($m > $l) {
             $iter = 0;
             do {
                 // Could check iteration count here.
                 $iter += 1;
                 // Compute implicit shift
                 $g = $this->d[$l];
                 $p = ($this->d[$l + 1] - $g) / (2.0 * $this->e[$l]);
                 $r = hypo($p, 1.0);
                 if ($p < 0) {
                     $r *= -1;
                 }
                 $this->d[$l] = $this->e[$l] / ($p + $r);
                 $this->d[$l + 1] = $this->e[$l] * ($p + $r);
                 $dl1 = $this->d[$l + 1];
                 $h = $g - $this->d[$l];
                 for ($i = $l + 2; $i < $this->n; ++$i) {
                     $this->d[$i] -= $h;
                 }
                 $f += $h;
                 // Implicit QL transformation.
                 $p = $this->d[$m];
                 $c = 1.0;
                 $c2 = $c3 = $c;
                 $el1 = $this->e[$l + 1];
                 $s = $s2 = 0.0;
                 for ($i = $m - 1; $i >= $l; --$i) {
                     $c3 = $c2;
                     $c2 = $c;
                     $s2 = $s;
                     $g = $c * $this->e[$i];
                     $h = $c * $p;
                     $r = hypo($p, $this->e[$i]);
                     $this->e[$i + 1] = $s * $r;
                     $s = $this->e[$i] / $r;
                     $c = $p / $r;
                     $p = $c * $this->d[$i] - $s * $g;
                     $this->d[$i + 1] = $h + $s * ($c * $g + $s * $this->d[$i]);
                     // Accumulate transformation.
                     for ($k = 0; $k < $this->n; ++$k) {
                         $h = $this->V[$k][$i + 1];
                         $this->V[$k][$i + 1] = $s * $this->V[$k][$i] + $c * $h;
                         $this->V[$k][$i] = $c * $this->V[$k][$i] - $s * $h;
                     }
                 }
                 $p = -$s * $s2 * $c3 * $el1 * $this->e[$l] / $dl1;
                 $this->e[$l] = $s * $p;
                 $this->d[$l] = $c * $p;
                 // Check for convergence.
             } while (abs($this->e[$l]) > $eps * $tst1);
         }
         $this->d[$l] = $this->d[$l] + $f;
         $this->e[$l] = 0.0;
     }
     // Sort eigenvalues and corresponding vectors.
     for ($i = 0; $i < $this->n - 1; ++$i) {
         $k = $i;
         $p = $this->d[$i];
         for ($j = $i + 1; $j < $this->n; ++$j) {
             if ($this->d[$j] < $p) {
                 $k = $j;
                 $p = $this->d[$j];
             }
         }
         if ($k != $i) {
             $this->d[$k] = $this->d[$i];
             $this->d[$i] = $p;
             for ($j = 0; $j < $this->n; ++$j) {
                 $p = $this->V[$j][$i];
//.........这里部分代码省略.........
开发者ID:alyayazilim,项目名称:E-Ticaret-2015,代码行数:101,代码来源:EigenvalueDecomposition.php


示例6: __construct

 /**
  *	Construct the singular value decomposition
  *
  *	Derived from LINPACK code.
  *
  *	@param $A Rectangular matrix
  *	@return Structure to access U, S and V.
  */
 public function __construct($Arg)
 {
     // Initialize.
     $A = $Arg->getArrayCopy();
     $this->m = $Arg->getRowDimension();
     $this->n = $Arg->getColumnDimension();
     $nu = min($this->m, $this->n);
     $e = array();
     $work = array();
     $wantu = true;
     $wantv = true;
     $nct = min($this->m - 1, $this->n);
     $nrt = max(0, min($this->n - 2, $this->m));
     // Reduce A to bidiagonal form, storing the diagonal elements
     // in s and the super-diagonal elements in e.
     for ($k = 0; $k < max($nct, $nrt); ++$k) {
         if ($k < $nct) {
             // Compute the transformation for the k-th column and
             // place the k-th diagonal in s[$k].
             // Compute 2-norm of k-th column without under/overflow.
             $this->s[$k] = 0;
             for ($i = $k; $i < $this->m; ++$i) {
                 $this->s[$k] = hypo($this->s[$k], $A[$i][$k]);
             }
             if ($this->s[$k] != 0.0) {
                 if ($A[$k][$k] < 0.0) {
                     $this->s[$k] = -$this->s[$k];
                 }
                 for ($i = $k; $i < $this->m; ++$i) {
                     $A[$i][$k] /= $this->s[$k];
                 }
                 $A[$k][$k] += 1.0;
             }
             $this->s[$k] = -$this->s[$k];
         }
         for ($j = $k + 1; $j < $this->n; ++$j) {
             if ($k < $nct & $this->s[$k] != 0.0) {
                 // Apply the transformation.
                 $t = 0;
                 for ($i = $k; $i < $this->m; ++$i) {
                     $t += $A[$i][$k] * $A[$i][$j];
                 }
                 $t = -$t / $A[$k][$k];
                 for ($i = $k; $i < $this->m; ++$i) {
                     $A[$i][$j] += $t * $A[$i][$k];
                 }
                 // Place the k-th row of A into e for the
                 // subsequent calculation of the row transformation.
                 $e[$j] = $A[$k][$j];
             }
         }
         if ($wantu and $k < $nct) {
             // Place the transformation in U for subsequent back
             // multiplication.
             for ($i = $k; $i < $this->m; ++$i) {
                 $this->U[$i][$k] = $A[$i][$k];
             }
         }
         if ($k < $nrt) {
             // Compute the k-th row transformation and place the
             // k-th super-diagonal in e[$k].
             // Compute 2-norm without under/overflow.
             $e[$k] = 0;
             for ($i = $k + 1; $i < $this->n; ++$i) {
                 $e[$k] = hypo($e[$k], $e[$i]);
             }
             if ($e[$k] != 0.0) {
                 if ($e[$k + 1] < 0.0) {
                     $e[$k] = -$e[$k];
                 }
                 for ($i = $k + 1; $i < $this->n; ++$i) {
                     $e[$i] /= $e[$k];
                 }
                 $e[$k + 1] += 1.0;
             }
             $e[$k] = -$e[$k];
             if ($k + 1 < $this->m and $e[$k] != 0.0) {
                 // Apply the transformation.
                 for ($i = $k + 1; $i < $this->m; ++$i) {
                     $work[$i] = 0.0;
                 }
                 for ($j = $k + 1; $j < $this->n; ++$j) {
                     for ($i = $k + 1; $i < $this->m; ++$i) {
                         $work[$i] += $e[$j] * $A[$i][$j];
                     }
                 }
                 for ($j = $k + 1; $j < $this->n; ++$j) {
                     $t = -$e[$j] / $e[$k + 1];
                     for ($i = $k + 1; $i < $this->m; ++$i) {
                         $A[$i][$j] += $t * $work[$i];
                     }
                 }
//.........这里部分代码省略.........
开发者ID:sysraj86,项目名称:carnivalcrm,代码行数:101,代码来源:SingularValueDecomposition.php



注:本文中的hypo函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP i函数代码示例发布时间:2022-05-15
下一篇:
PHP hyphen_words函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap