|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 1018 (0x3fa)
Types: TextFile
Names: »project.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦this⟧ »EUUGD11/euug-87hel/sec1/graph/project.c«
/*
* Copyright (C) 1986 Alan Kent
*
* Permission is granted to freely distribute part or
* all of this code as long as it is not for profit
* and this message is retained in the code.
*
* No resposibility is taken for any damage or incorect
* results this program generates.
*
*/
#include <stdio.h>
#include "graph.h"
extern table_st *new_table ();
extern double eval ();
table_st *
project ( table , attr_expr_list )
table_st *table;
expr_list_st *attr_expr_list;
{
table_st *newtab , *p;
expr_list_st *list;
int count;
int i;
if ( table == NULL )
abort ( "cannot project on an empty table" );
count = 0;
for ( list = attr_expr_list; list != NULL; list = list->next )
count++;
newtab = new_table ( count , table->size );
for ( list = attr_expr_list , p = newtab; list != NULL; list = list->next , p = p->next ) {
for ( i = 0; i < table->size; i++ )
p->data[i] = eval ( table , i , list->expr );
}
free_table ( table );
return ( newtab );
}