Index

Subject : Re: LUG: C++/C question

From : "Daniel Underwood" <daniel.underwood@ncsu.[redacted]>

Date : Wed, 07 Dec 2011 06:33:55 -0500

Parent


I'll explain exactly what the program does. There are 56 different double arrays. The user inputs 3 values, and based on these 3 values, the program deterministically selects one of the 56 arrays and randomly (using a random number generator) returns one of the doubles in the selected array. This just repeats as many times as the user needs.

On Tue, Dec 6, 2011, at 10:23 PM, Joe Bianco wrote:
> I don't know exactly what you're trying to do, but since it seems like
> it will always be the same values used (one solution was hard-coding
> it in), could you precalculate what you need to use and just include
> the relevant value(s)?
>
> E.g. if it's an average, go ahead and calculate that average and only
> include that. Surely, you can include data derived from the private
> data since that doesn't give away anything by itself.
>
> On Tue, Dec 6, 2011 at 10:12 PM, Daniel Underwood
> <daniel.underwood@ncsu.[redacted]> wrote:
> > The point of the program is to generate a sample of a random variable with distribution defined by the input data I'm trying to conceal from the user. �So I can't use substitute or dummy data.
> >
> > The program is extremely simple; the value is in the distribution derived from medical records (the private data), not in the code or algorithm.
> >
> > Sent from my iPhone
> >
> > On Dec 6, 2011, at 9:02 PM, Stephen Roller <scroller@ncsu.[redacted]> wrote:
> >
> >> One common way I see this handled in research is make the program load
> >> the .data file in or whatever and do the process. Then distribute the
> >> binary without the data. If you want to use the binary, you have to
> >> ask for permission. Say for research purposes only or whatever.
> >>
> >> And yeah, like Kristopher says, generate some fake data or an obscured
> >> subset of your data, or something.
> >>
> >> On Tue, Dec 6, 2011 at 7:55 PM, Kristopher Tesh <kitesh@ncsu.[redacted]> wrote:
> >>> If you can remove identifying data, it may become legal to distribute. If
> >>> your purpose for including the data is to demonstrate the program, it's not
> >>> so hard to generate 100-odd dummy entries. Make a table of 2-5 values for
> >>> each parameter and randomly assign them.
> >>>
> >>> On Dec 6, 2011 8:20 PM, "Daniel Underwood" <daniel.underwood@ncsu.[redacted]>
> >>> wrote:
> >>>>
> >>>> That's a good point.
> >>>>
> >>>> On Tue, Dec 6, 2011, at 08:08 PM, Warren Myers wrote:
> >>>>> I'd hasten to point out that if you're putting the data in the source
> >>>>> file
> >>>>> (in any form), it's still readable in a hex editor. In the good old days
> >>>>> of
> >>>>> DOS/Windows (my exposure to ASM programming), it all goes in the CODE
> >>>>> segment - which means it's readable and decipherable by anyone who cares
> >>>>> to
> >>>>> open the file in a hex reader :)
> >>>>>
> >>>>> WMM
> >>>>>
> >>>>> On Tue, Dec 6, 2011 at 18:39, Daniel Underwood
> >>>>> <daniel.underwood@ncsu.[redacted]>wrote:
> >>>>>
> >>>>>> Hey folks,
> >>>>>>
> >>>>>> Related to some research I've done, I want to make publicly available
> >>>>>> a
> >>>>>> program written in C++. �The problem is that the program reads input
> >>>>>> data
> >>>>>> from a bunch of text files, and I can't make the data publicly
> >>>>>> available
> >>>>>> due to contractual obligations. �I need to figure out how to rewrite
> >>>>>> the
> >>>>>> program so that all of the input data is compiled into the machine
> >>>>>> code.
> >>>>>>
> >>>>>> There is a lot of data. �Below is a snippet of code to show how much
> >>>>>> data
> >>>>>> I'm referring to (each of the constant integers below is the size of a
> >>>>>> corresponding array of doubles). �Does anyone have any suggestion as
> >>>>>> to how
> >>>>>> I might hide this data inside a compiled binary?
> >>>>>>
> >>>>>> (I suspect it's possible to use sed/awk to change the input text files
> >>>>>> so
> >>>>>> that they can be placed directly inside the source code files, but I'm
> >>>>>> wondering if there's a better way to do this.)
> >>>>>>
> >>>>>> Many thanks!
> >>>>>> Daniel
> >>>>>>
> >>>>>> [BEGIN CODE]
> >>>>>> double AW3[2500];
> >>>>>> double AB3[2500];
> >>>>>>
> >>>>>> const int NCa1p1NUM=9925;
> >>>>>> const int NCa1p2NUM=832;
> >>>>>> const int NCa1p3NUM=160;
> >>>>>> const int NCa1p4NUM=72;
> >>>>>> const int NCa1p5NUM=88;
> >>>>>> const int NCa1p6NUM=28;
> >>>>>> const int NCa1p7NUM=50;
> >>>>>>
> >>>>>> const int NCa2p1NUM=30414;
> >>>>>> const int NCa2p2NUM=2673;
> >>>>>> const int NCa2p3NUM=738;
> >>>>>> const int NCa2p4NUM=292;
> >>>>>> const int NCa2p5NUM=246;
> >>>>>> const int NCa2p6NUM=56;
> >>>>>> const int NCa2p7NUM=54;
> >>>>>>
> >>>>>> const int NCa3p1NUM=28647;
> >>>>>> const int NCa3p2NUM=3299;
> >>>>>> const int NCa3p3NUM=1450;
> >>>>>> const int NCa3p4NUM=641;
> >>>>>> const int NCa3p5NUM=570;
> >>>>>> const int NCa3p6NUM=153;
> >>>>>> const int NCa3p7NUM=115;
> >>>>>>
> >>>>>> const int NCa4p1NUM=27370;
> >>>>>> const int NCa4p2NUM=3142;
> >>>>>> const int NCa4p3NUM=1763;
> >>>>>> const int NCa4p4NUM=1150;
> >>>>>> const int NCa4p5NUM=1509;
> >>>>>> const int NCa4p6NUM=478;
> >>>>>> const int NCa4p7NUM=366;
> >>>>>>
> >>>>>> const int CAa1p1NUM=164;
> >>>>>> const int CAa1p2NUM=34;
> >>>>>> const int CAa1p3NUM=9;
> >>>>>> const int CAa1p4NUM=2;
> >>>>>> const int CAa1p5NUM=8;
> >>>>>> const int CAa1p6NUM=2;
> >>>>>> const int CAa1p7NUM=0;
> >>>>>>
> >>>>>> const int CAa2p1NUM=1077;
> >>>>>> const int CAa2p2NUM=176;
> >>>>>> const int CAa2p3NUM=107;
> >>>>>> const int CAa2p4NUM=66;
> >>>>>> const int CAa2p5NUM=57;
> >>>>>> const int CAa2p6NUM=3;
> >>>>>> const int CAa2p7NUM=10;
> >>>>>>
> >>>>>> const int CAa3p1NUM=1815;
> >>>>>> const int CAa3p2NUM=223;
> >>>>>> const int CAa3p3NUM=180;
> >>>>>> const int CAa3p4NUM=177;
> >>>>>> const int CAa3p5NUM=218;
> >>>>>> const int CAa3p6NUM=42;
> >>>>>> const int CAa3p7NUM=20;
> >>>>>>
> >>>>>> const int CAa4p1NUM=2140;
> >>>>>> const int CAa4p2NUM=165;
> >>>>>> const int CAa4p3NUM=144;
> >>>>>> const int CAa4p4NUM=134;
> >>>>>> const int CAa4p5NUM=349;
> >>>>>> const int CAa4p6NUM=136;
> >>>>>> const int CAa4p7NUM=126;
> >>>>>> [END CODE]
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Daniel Underwood
> >>>>>> North Carolina State University
> >>>>>> PhD Student - Industrial Engineering
> >>>>>> email: daniel.underwood@ncsu.[redacted]
> >>>>>> phone: XXX.302.3291
> >>>>>> fax: XXX.515.5281
> >>>>>> web: http://www4.ncsu.edu/~djunderw/
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Warren Myers
> >>>>> http://warrenmyers.com
> >>>>> http://twitter.com/volcimaster
> >>>>> http://www.linkedin.com/in/warrenmyers
> >>>>>
> >>>> --
> >>>> Daniel Underwood
> >>>> North Carolina State University
> >>>> PhD Student - Industrial Engineering
> >>>> email: daniel.underwood@ncsu.[redacted]
> >>>> phone: XXX.302.3291
> >>>> fax: XXX.515.5281
> >>>> web: http://www4.ncsu.edu/~djunderw/
> >>>>
> >>>
> >>
> >
>
>
--
Daniel Underwood
North Carolina State University
PhD Student - Industrial Engineering
email: daniel.underwood@ncsu.[redacted]
phone: XXX.302.3291
fax: XXX.515.5281
web: http://www4.ncsu.edu/~djunderw/