44 lines
		
	
	
		
			791 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			791 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
| /*
 | |
|  * Copyright (C) Artsiom D.
 | |
|  * Copyright (C) shit-co.de
 | |
|  */
 | |
| 
 | |
| 
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| 
 | |
| #include "chart.h"
 | |
| #include "util.h"
 | |
| 
 | |
| 
 | |
| struct chart
 | |
| new_chart(unsigned int length)
 | |
| {
 | |
|     unsigned int  i;
 | |
|     double        price;
 | |
|     struct chart  chart;
 | |
| 
 | |
|     chart.prices = emalloc(sizeof(double) * length);
 | |
|     chart.length = length;
 | |
| 
 | |
|     /* populate with random prices */
 | |
| 
 | |
|     price = 10;
 | |
|     
 | |
|     for (i = 0; i < length; i++) {
 | |
|         chart.prices[i] = price;
 | |
|         price += (double)rand() / RAND_MAX * 4 - 2;
 | |
|     }
 | |
| 
 | |
|     return chart;
 | |
| }
 | |
| 
 | |
| 
 | |
| void
 | |
| update_chart(struct chart *chart)
 | |
| {
 | |
|     memmove(chart->prices, chart->prices + 1, (chart->length - 1) * sizeof(double));
 | |
|     chart->prices[chart->length - 1] = chart->prices[chart->length - 2] + (double)rand() / RAND_MAX * 4 - 2;
 | |
| }
 |