Skip to content

Commit

Permalink
Merge pull request #17 from ptuchster/master
Browse files Browse the repository at this point in the history
FIXED: C files structure for Mac gcc compiler
  • Loading branch information
josephwilk committed Jan 4, 2018
2 parents 9da8100 + e98be4d commit 0facb84
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 161 deletions.
6 changes: 2 additions & 4 deletions ext/tlearn/compute.c
Expand Up @@ -110,7 +110,7 @@ comp_errors(aold,atarget,aerror,e,ce_e)
}


comp_deltas(apold,apnew,awt,adwt,aold,anew,aerror)
void comp_deltas(apold,apnew,awt,adwt,aold,anew,aerror)
float ***apold;
float ***apnew;
float **awt;
Expand Down Expand Up @@ -215,7 +215,7 @@ comp_deltas(apold,apnew,awt,adwt,aold,anew,aerror)
return;
}

comp_backprop(awt,adwt,aold,amem,atarget,aerror,local)
void comp_backprop(awt,adwt,aold,amem,atarget,aerror,local)
float **awt;
float **adwt;
float *aold;
Expand Down Expand Up @@ -400,5 +400,3 @@ comp_backprop(awt,adwt,aold,amem,atarget,aerror,local)

return;
}


301 changes: 150 additions & 151 deletions ext/tlearn/parse.c
Expand Up @@ -56,6 +56,156 @@ extern int limits; /* flag for limited weights */

extern float weight_limit; /* bound for random weight init */

void parse_err()
{
fprintf(stderr,"\nError in .cf file:\n\n");
fprintf(stderr,"%s\n\n",pbuf);
fprintf(stderr,"(%s)\n\n",nbuf);
exit(1);

}

void get_str(fp,buf,str)
FILE *fp;
char *buf;
char *str;
{
if (fscanf(fp,"%s",buf) == EOF){
fprintf(stderr,"Premature EOF detected.\n\n");
parse_err();
}
if (strlen(pbuf) > MAX_PARSE_BUF -512) strcpy(pbuf, pbuf +512);
strcat(pbuf,buf);
strcat(pbuf,str);
}

void get_nums(str,nv,offset,vec)
char *str;
int nv;
int offset;
int *vec;
{
int c, i, j, l, k, m, n;
int dash;
int input;

char tmp[80];

dash = 0;
input = 0;
l = strlen(str);
nbp = 0;
for (i = 0; i <= nv; i++)
vec[i] = 0;
for (i = 0, j = 0; i < l; j++, i++){
c = str[i];
switch (c) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': nbuf[nbp++] = tmp[j] = str[i];
break;
case 'i': input++;
j--;
nbuf[nbp++] = str[i];
break;
case '-': if (j == 0)
parse_err();
tmp[j] = '\0';
j = -1;
nbuf[nbp++] = str[i];
m = atoi(tmp);
dash = 1;
break;
case ',': if (j == 0)
parse_err();
tmp[j] = '\0';
j = -1;
nbuf[nbp++] = str[i];
if (dash){
n = atoi(tmp);
if (input == 1)
parse_err();
if (n < m)
parse_err();
}
else{
m = atoi(tmp);
n = m;
}
if (input == 0){
m += offset;
n += offset;
}
if (n > nv){
fprintf(stderr,"ERROR %d > %d\n",n,nv);
parse_err();
}
if ((input) && (n > offset)){
fprintf(stderr,"ERROR %d > %d\n",n,offset);
parse_err();
}
for (k = m; k <= n; k++){
if ((input == 0) && (k == offset))
vec[0] = 1;
else
vec[k] = 1;
}
input = 0;
dash = 0;
break;

default: parse_err();
}
}
if (j == 0)
parse_err();
tmp[j] = '\0';
nbuf[nbp++] = tmp[j];
if (dash){
n = atoi(tmp);
if (input == 1){
fprintf(stderr,"Cannot use dash to connect input and noninput\n\n");
parse_err();
}
if (n < m){
fprintf(stderr,"Upper bound must exceed lower\n\n");
parse_err();
}
}
else{
m = atoi(tmp);
n = m;
}
if (input == 0){
m += offset;
n += offset;
}
if (n > nv){
fprintf(stderr,"ERROR %d > %d\n",n,nv);
parse_err();
}
if ((input) && (n > offset)){
fprintf(stderr,"ERROR %d > %d\n",n,offset);
parse_err();
}
for (k = m; k <= n; k++){
if ((input == 0) && (k == offset))
vec[0] = 1;
else
vec[k] = 1;
}

nbp = 0;

}

void get_nodes()
{
int i;
Expand Down Expand Up @@ -441,154 +591,3 @@ void get_special()
}

}

void get_str(fp,buf,str)
FILE *fp;
char *buf;
char *str;
{
if (fscanf(fp,"%s",buf) == EOF){
fprintf(stderr,"Premature EOF detected.\n\n");
parse_err();
}
if (strlen(pbuf) > MAX_PARSE_BUF -512) strcpy(pbuf, pbuf +512);
strcat(pbuf,buf);
strcat(pbuf,str);
}

void get_nums(str,nv,offset,vec)
char *str;
int nv;
int offset;
int *vec;
{
int c, i, j, l, k, m, n;
int dash;
int input;

char tmp[80];

dash = 0;
input = 0;
l = strlen(str);
nbp = 0;
for (i = 0; i <= nv; i++)
vec[i] = 0;
for (i = 0, j = 0; i < l; j++, i++){
c = str[i];
switch (c) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': nbuf[nbp++] = tmp[j] = str[i];
break;
case 'i': input++;
j--;
nbuf[nbp++] = str[i];
break;
case '-': if (j == 0)
parse_err();
tmp[j] = '\0';
j = -1;
nbuf[nbp++] = str[i];
m = atoi(tmp);
dash = 1;
break;
case ',': if (j == 0)
parse_err();
tmp[j] = '\0';
j = -1;
nbuf[nbp++] = str[i];
if (dash){
n = atoi(tmp);
if (input == 1)
parse_err();
if (n < m)
parse_err();
}
else{
m = atoi(tmp);
n = m;
}
if (input == 0){
m += offset;
n += offset;
}
if (n > nv){
fprintf(stderr,"ERROR %d > %d\n",n,nv);
parse_err();
}
if ((input) && (n > offset)){
fprintf(stderr,"ERROR %d > %d\n",n,offset);
parse_err();
}
for (k = m; k <= n; k++){
if ((input == 0) && (k == offset))
vec[0] = 1;
else
vec[k] = 1;
}
input = 0;
dash = 0;
break;

default: parse_err();
}
}
if (j == 0)
parse_err();
tmp[j] = '\0';
nbuf[nbp++] = tmp[j];
if (dash){
n = atoi(tmp);
if (input == 1){
fprintf(stderr,"Cannot use dash to connect input and noninput\n\n");
parse_err();
}
if (n < m){
fprintf(stderr,"Upper bound must exceed lower\n\n");
parse_err();
}
}
else{
m = atoi(tmp);
n = m;
}
if (input == 0){
m += offset;
n += offset;
}
if (n > nv){
fprintf(stderr,"ERROR %d > %d\n",n,nv);
parse_err();
}
if ((input) && (n > offset)){
fprintf(stderr,"ERROR %d > %d\n",n,offset);
parse_err();
}
for (k = m; k <= n; k++){
if ((input == 0) && (k == offset))
vec[0] = 1;
else
vec[k] = 1;
}

nbp = 0;

}

void parse_err()
{
fprintf(stderr,"\nError in .cf file:\n\n");
fprintf(stderr,"%s\n\n",pbuf);
fprintf(stderr,"(%s)\n\n",nbuf);
exit(1);

}

8 changes: 3 additions & 5 deletions ext/tlearn/update.c
Expand Up @@ -219,7 +219,7 @@ update_inputs(aold,tick,flag,maxtime,local)

}

update_targets(atarget,time,tick,flag,maxtime)
void update_targets(atarget,time,tick,flag,maxtime)
float *atarget;
long time;
int tick;
Expand Down Expand Up @@ -406,7 +406,7 @@ update_targets(atarget,time,tick,flag,maxtime)

}

update_reset(time,tick,flag,maxtime,now)
void update_reset(time,tick,flag,maxtime,now)
long time;
int tick;
int flag;
Expand Down Expand Up @@ -481,7 +481,7 @@ update_reset(time,tick,flag,maxtime,now)

}

update_weights(awt,adwt,awinc)
void update_weights(awt,adwt,awinc)
float **awt;
float **adwt;
float **awinc;
Expand Down Expand Up @@ -576,5 +576,3 @@ update_weights(awt,adwt,awinc)

return;
}


2 changes: 1 addition & 1 deletion tlearn.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = 'tlearn'
s.version = '0.0.8'
s.version = '0.0.9'
s.summary = 'Ruby bindings for tlearn'
s.authors = ["Joseph Wilk"]
s.email = ["joe@josephwilk.net"]
Expand Down

0 comments on commit 0facb84

Please sign in to comment.