SHOGUN
3.2.1
首页
相关页面
模块
类
文件
文件列表
文件成员
全部
类
命名空间
文件
函数
变量
类型定义
枚举
枚举值
友元
宏定义
组
页
src
shogun
lib
slep
q1
eppMatrix.cpp
浏览该文件的文档.
1
/* This program is free software: you can redistribute it and/or modify
2
* it under the terms of the GNU General Public License as published by
3
* the Free Software Foundation, either version 3 of the License, or
4
* (at your option) any later version.
5
*
6
* This program is distributed in the hope that it will be useful,
7
* but WITHOUT ANY WARRANTY; without even the implied warranty of
8
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9
* GNU General Public License for more details.
10
*
11
* You should have received a copy of the GNU General Public License
12
* along with this program. If not, see <http://www.gnu.org/licenses/>.
13
*
14
* Copyright (C) 2009 - 2012 Jun Liu and Jieping Ye
15
*/
16
17
#include <stdlib.h>
18
#include <stdio.h>
19
#include <time.h>
20
#include <math.h>
21
#include <
shogun/lib/slep/q1/eppMatrix.h
>
22
23
void
eppMatrix
(
double
*X,
double
* V,
int
k,
int
n,
double
rho,
double
p)
24
{
25
int
i, j, *iter_step;
26
double
*v, *x;
27
double
c0, c;
28
29
v=(
double
*)malloc(
sizeof
(
double
)*n);
30
x=(
double
*)malloc(
sizeof
(
double
)*n);
31
iter_step=(
int
*)malloc(
sizeof
(
int
)*2);
32
33
/*
34
*X and V are k x n matrices in matlab, stored in column priority manner
35
*x corresponds a row of X
36
*/
37
38
39
c0=0;
40
for
(i=0; i<k; i++){
41
42
for
(j=0; j<n; j++)
43
v[j]=V[i + j*k];
44
45
epp
(x, &c, iter_step, v, n, rho, p, c0);
46
c0=c;
47
48
for
(j=0; j<n; j++)
49
X[i + j*k]=x[j];
50
}
51
52
free(v);
53
free(x);
54
free(iter_step);
55
};
SHOGUN
机器学习工具包 - 项目文档