Array without ArrayBindSize / Size

Hi All,
I would like to know how do I get an array of output without having to declare its size before.
Without using the Size and ArrayBindSize array of return because it may have 10 or 30k positions.
Thanks,
Leo.

Insert array will do what it says, insert an element into the array, AND resize it accordingly.
If this is not what you want it to do, you should not use Insert Array!
Instead you would have to do some work of this on your own. The principle would be to allocate a fixed size array in the beginning and maintain how many elements are already in the array. If you now need to insert some data into the array you first move all the data beyond the insertions point by the number of elements that you want to insert. Then copy the data into the array and finally update the bookkeepng about how much data is really in the array. Not as convinient as using a ready made node, but also no rocket science by far.
There are no out of the box functions that allow to insert data into an array without resizing the array, which is what you want to avoid for the FPGA code.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • Can the Property Loader load arrays of variable size?

    I need to run a series of tests on the same UUT, changing only one parameter at a time (for example, a frequency response test). The hardware developers would like to be able to change the values of parameters of the test at will, without making changes to the sequence. That's easy - just change the value of the parameter in the Properties file. The hard part is changing the number of iterations of the test, by ONLY adding or deleting the number of parameters from the text file. In other words, all I know during sequence editing is the types of parameters, not the values or how many. I want the test to loop as many times as there are sets of parameters in the text file.
    I would like to do this by loading the paramet
    ers as an array. But the Property Loader wants me to specify each variable while I am editing the sequence, including each individual member of the array (e.g. "Locals.Array[0].Value"). I want to do somthing like "Locals.Array[*].Value", where "*" means "all elements".
    Am I forced to write external code to load each parameter, or does TS have a native way to do this? Even better, has anybody done this already, and will you explain how? Thanks

    Hi,
    there's a couple of options here, and I've included what I think is the simplest below (using TestStand 2.0.1).
    It's not exactly elegant though. What I've done is to put in a step that finds out the number of steps to load (based on an earlier decision - in this case a message popup step). I read a number from the limits file, and use this in the looping options of the property loader step that's loading the values into the array. I've done it with a fixed size array target here, big enough to take any incoming data. (Otherwise, knowing how many items you're going to load from the limits file, you could start with an empty array and re-size it prior to loading).
    I've cheated slightly by using the pre-expression on the property loader step to specify where th
    e data is coming from and where it's going to in the sequence on each iteration of the loop based on the Runstate.Loopindex.
    Another option is to go straight into the property loader step, and keep loading properties until the Step.Result.NumPropertiesRead = 0 (remember we're only doing this one at a time)
    Another idea would be to load in a value, and check it isn't a "flag" value (i.e. you'd never use say 999 in your array, so set the last element in your limits file to this, and drop out of the loop when this happens.
    Further still, you've got the source code for the property loader step, so you could re-write it to make a custom step that loads an array until it fails all on its own (no looping in TestStand).
    Hope this gets you going
    S.
    // it takes almost no time to rate an answer
    Attachments:
    DynamicPropertyLoader.seq ‏32 KB

  • How do you create an array without using a shell on the FP?

    I want to be able to read the status of front panel controls (value, control box selection, etc.) and save it to a file, as a "configuration" file -- then be able to load it and have all the controls set to the same states as were saved in the file. I was thinking an array would be a way to do this, as I have done that in VB. (Saving it as a text file, then reading lines back into the array when the file is read and point the control(s) values/states to the corresponding array element.
    So how do I create an array of X dimensions without using a shell on the front panel? Or can someone suggest a better way to accomplish what I am after? (Datalogging doesn't allow for saving the status by a filename, so I
    do not want to go that route.)

    Thanks so much m3nth! This definitely looks like what I was wanting... just not really knowing how to get there.
    I'm not sure I follow all the icons. Is that an array (top left with 0 constant) in the top example? And if so, that gets back to part of my original question of how to create an array without using a shell on the FP. Do I follow your diagram correctly?
    If I seem a tad green... well I am.
    I hope you understand the LabVIEW environment and icons are still very new to me.
    Also, I had a response from an NI app. engineer about this problem. He sent me a couple of VI's that he threw together approaching this by using Keys. (I still think you are pointing to the best solution.) I assume he wouldn't mind m
    e posting his reply and the VI's for the sake of a good, thorough, Roundtable discussion. So here are his comments with VI's attached:
    "I was implementing this exact functionality this morning for an application I'm working on. I only have five controls I want to save, but they are all of different data types. I simply wrote a key for each control, and read back that key on initialization. I simply passed in property node values to the save VI at the end, and passed the values out to property nodes at
    the beginning. I've attached my initialize and save VI's for you to view. If you have so many controls that this would not be feasible, you may want to look into clustering the controls and saving the cluster as a datalog file.
    Attachments:
    Initialize_Settings.vi ‏55 KB
    Save_Settings.vi ‏52 KB

  • How to populate one array without running the entire VI

    I'm trying to populate a complex array that I built that reads from a spreadsheet file.  The company I am building it for only has labview run time on the PXI test equipment that I am working with.  I am having to fix the VI On my computer then build an executable and then test it on the machine to see if it runs properly.  It's a very tedious process.  I cannot run the VI on my computer because it requires to have a FLUKE 726 connected in order to run.  So, I was wondering if there is a way to repopulate the array without running the entire VI?
    Your help would be greatly appreciated.

    Create a subVI for reading/processing of the array.  Then you just have to test that subVI as your machine.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Change array index font size using VI scripting

    Hello All,
                         I have a array control in my front panel, I'm wondering is there any way to change that "array index" font size using VI scripting?
    Example:
    1. I have this array
    2. Manually I have changed the font size of the array in "Selection Font" panel as below
    3. Through VI scripting I'm able to control control font size, label font size.,.. But not the index font size. So it looks odd.
    4. I'm expecting to be modify this array as same as picture 1 through VI scripting.
    Note: It may not have any practical application, but some time it will be helpful for the programmers to make a quick drop. If anybody have any idea, please share.
    <Electro Sam>
    ELECTRO SAM
    For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
    - John 3:16

    Raven - you are right, Actually I'm looking for options to change the font size of the array index.
    Actually we have coding standard to follow. In that, all the front panel controls needs to be in Font size 14 and the size should be 25X120, so I'm trying to write a code which automatically converts the VI FP control sizes to be in standard size.
    I'm not only using one customer VI, I'm handling various customer VIs, so each one VI FP control sizes are different. So I'm developing this utility to standardize the VI's as per the guidelines we have.
    Except this array index most of the VI FP control elements I have handled, Only this array is troubling me.
    Appreciate your support guys, please share your thoughts.
    <ElectroSam>
    ELECTRO SAM
    For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
    - John 3:16

  • Removes duplicates from a sorted array without having to create a new array

    Funcation removes duplicates from a sorted array without having to create a new array

    Funcation removes duplicates from a sorted array
    without having to create a new arrayIs a 'funcation' like a vacation but more fun or
    something?LMFAO. You just jumped with both feet on one of my biggest peeves. I've been outed!
    Actual words/phrases I've seen used which I hate with every fiber of my being:
    "Mrs. Freshly's"
    "McFlurry"
    "Freshissimo"
    "Spee-dee"
    "Moons Over My Hammy"
    One of my favorite SNL skits had Will Ferrell leading a panel of movie reviewers (they're the worst for this kind of junk). Each one had some cheesy pun to describe their respective movie. Ferrell topped the show off with his endorsement of "Fantasia 2000 is Fantasgreat!"
    LOL.
    "Come to Slippy Village - it's a FUNCATION!"
    &#167; (runs off, laughing maniacally, head explodes)

  • Creating an array without using "auto-indexing"

    Hello,
    it is terrible! I'm new in working with LV5.0 (Evaluation) and I can't
    find any examples how to write data into an array without using the
    function "auto-indexing" of the "WHILE" or "FOR"-loops..
    The values do not appear all at the same time, so I can't use the
    "create_array" function.
    So I want to "collect" all occured values and then write them e.g. in a
    file.
    Did I miss anything in the description ???
    Who can help me?
    Thanks, CHZ

    CHZ wrote in message news:[email protected]..
    > Hello,
    > it is terrible! I'm new in working with LV5.0 (Evaluation) and I can't
    > find any examples how to write data into an array without using the
    > function "auto-indexing" of the "WHILE" or "FOR"-loops..
    > The values do not appear all at the same time, so I can't use the
    > "create_array" function.
    > So I want to "collect" all occured values and then write them e.g. in a
    > file.
    The "Create array" function can be configured to take arrays as well as
    elements. You have to use a loop that iterates as often as necessary,
    checking for new data. When it receives new data, it adds the new data to
    the existing array. It's probably easier to attach a small example than to
    describe it in more
    detail.
    [Attachment Array.zip, see below]
    Attachments:
    Array.zip ‏10 KB

  • Error meesage on UI sCannot insert/update Array without context information

    Hi All,
    As soon as page runs , i m getting the below error on server logs and also getting the same error once page page loads , user click on SellectmnayListBOx components on screen .
    Appriciate if any inputs on this . using ADF6 .
    <ApplicationModuleImpl> <doPoolMessage>
    oracle.jbo.AfterRollbackException: JBO-26102: An error occurred after rollback was performed.
         at oracle.jbo.server.DBTransactionImpl.rollback(DBTransactionImpl.java:2595)
         at oracle.jbo.server.ApplicationModuleImpl.resetState(ApplicationModuleImpl.java:4840)
         at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:336)
         at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:9084)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4607)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.resetApplicationModule(ApplicationPoolImpl.java:2026)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.removeSessionCookie(ApplicationPoolImpl.java:879)
         at oracle.jbo.common.ampool.SessionCookieImpl.removeFromPool(SessionCookieImpl.java:711)
         at oracle.jbo.common.ampool.SessionCookieImpl.destroy(SessionCookieImpl.java:650)
         at oracle.jbo.common.ampool.SessionCookieImpl.timeout(SessionCookieImpl.java:697)
         at oracle.adf.model.bc4j.DCJboDataControl.releaseImmediateAMUnmanaged(DCJboDataControl.java:2525)
         at oracle.adf.model.bc4j.DCJboDataControl.releaseApplicationModule(DCJboDataControl.java:2429)
         at oracle.adf.model.bc4j.DCJboDataControl.release(DCJboDataControl.java:903)
         at oracle.adf.model.dcframe.DataControlFrameImpl.release(DataControlFrameImpl.java:364)
         at oracle.adf.model.BindingContext.resetState(BindingContext.java:637)
         at oracle.adf.model.BindingContext.release(BindingContext.java:609)
         at oracle.adf.model.servlet.HttpBindingContext.valueUnbound(HttpBindingContext.java:77)
         at weblogic.servlet.internal.session.SessionData.removeAttribute(SessionData.java:720)
         at weblogic.servlet.internal.session.SessionData.removeAttribute(SessionData.java:702)
         at weblogic.servlet.internal.session.SessionData.remove(SessionData.java:976)
         at weblogic.servlet.internal.session.MemorySessionContext.invalidateSession(MemorySessionContext.java:69)
         at weblogic.servlet.internal.session.SessionContext.invalidateSession(SessionContext.java:475)
         at weblogic.servlet.internal.session.MemorySessionContext$SessionCleanupAction.run(MemorySessionContext.java:114)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.session.MemorySessionContext.destroy(MemorySessionContext.java:90)
         at weblogic.servlet.internal.WebAppServletContext.destroy(WebAppServletContext.java:3220)
         at weblogic.servlet.internal.ServletContextManager.destroyContext(ServletContextManager.java:247)
         at weblogic.servlet.internal.HttpServer.unloadWebApp(HttpServer.java:461)
         at weblogic.servlet.internal.WebAppModule.destroyContexts(WebAppModule.java:1535)
         at weblogic.servlet.internal.WebAppModule.deactivate(WebAppModule.java:507)
         at weblogic.application.internal.flow.ModuleStateDriver$2.previous(ModuleStateDriver.java:387)
         at weblogic.application.utils.StateMachineDriver.previousState(StateMachineDriver.java:223)
         at weblogic.application.utils.StateMachineDriver.previousState(StateMachineDriver.java:215)
         at weblogic.application.internal.flow.ModuleStateDriver.deactivate(ModuleStateDriver.java:141)
         at weblogic.application.internal.flow.ScopedModuleDriver.deactivate(ScopedModuleDriver.java:206)
         at weblogic.application.internal.flow.ModuleListenerInvoker.deactivate(ModuleListenerInvoker.java:261)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$2.previous(DeploymentCallbackFlow.java:547)
         at weblogic.application.utils.StateMachineDriver.previousState(StateMachineDriver.java:223)
         at weblogic.application.utils.StateMachineDriver.previousState(StateMachineDriver.java:215)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.deactivate(DeploymentCallbackFlow.java:192)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.deactivate(DeploymentCallbackFlow.java:184)
         at weblogic.application.internal.BaseDeployment$2.previous(BaseDeployment.java:642)
         at weblogic.application.utils.StateMachineDriver.previousState(StateMachineDriver.java:223)
         at weblogic.application.utils.StateMachineDriver.previousState(StateMachineDriver.java:215)
         at weblogic.application.internal.BaseDeployment.deactivate(BaseDeployment.java:227)
         at weblogic.application.internal.EarDeployment.deactivate(EarDeployment.java:58)
         at weblogic.application.internal.DeploymentStateChecker.deactivate(DeploymentStateChecker.java:198)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.deactivate(AppContainerInvoker.java:98)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.silentDeactivate(AbstractOperation.java:679)
         at weblogic.deploy.internal.targetserver.operations.RedeployOperation.unprepareDeployment(RedeployOperation.java:197)
         at weblogic.deploy.internal.targetserver.operations.RedeployOperation.doPrepare(RedeployOperation.java:120)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: oracle.jbo.JboException: Cannot insert/update Array without context information     at oracle.jbo.domain.Array.prepareForDML(Array.java:802)
         at oracle.jbo.server.ViewRowSetImpl.prepareLobObjectForBind(ViewRowSetImpl.java:8301)
         at oracle.jbo.server.ViewRowSetImpl.getParametersAsStorageTypes(ViewRowSetImpl.java:5074)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1169)
         at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java:1397)
         at oracle.jbo.server.ViewRowSetImpl.executeQueryForMode(ViewRowSetImpl.java:1303)
         at oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java:1288)
         at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:7107)
         at com.tuitravelad.modelbase.bc.base.vo.TuiTravelADViewObject.afterRollback(TuiTravelADViewObject.java:168)
         at oracle.jbo.server.DBTransactionImpl.rollback(DBTransactionImpl.java:2570)
         ... 62 more
    ## Detail 0 ##
    oracle.jbo.JboException: Cannot insert/update Array without context information
         at oracle.jbo.domain.Array.prepareForDML(Array.java:802)
         at oracle.jbo.server.ViewRowSetImpl.prepareLobObjectForBind(ViewRowSetImpl.java:8301)
         at oracle.jbo.server.ViewRowSetImpl.getParametersAsStorageTypes(ViewRowSetImpl.java:5074)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1169)
         at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java:1397)
         at oracle.jbo.server.ViewRowSetImpl.executeQueryForMode(ViewRowSetImpl.java:1303)
    Thanks

    Hi,
    this
    +"As soon as page runs , i m getting the below error on server logs and also getting the same error once page page loads , user click on SellectmnayListBOx components on screen ."+
    cannot be the full story you tell. The exception is thrown in the context of a prepareForDML, which is called on entities for the Create / Update and Delete use case. I also see a failed rollback. So there must be something you do before this happens during a page refresh
    Frank

  • Finding the largest values of an array without using if condition

    Hi,
    I am trying to find the largest values of an array without using any if condition. Can any one tell me the solution for that..
    Thanks

    I am trying to find the largest values of an arrayThe 'S' to values suggests that you want not only the largest one, but multiple ones among the largest ones. The best way, I think, is to sort the array, so that its largest values are grouped topgether. If the type is already Comparable, the following single line does the job:
    Collections.sort(myArray);After this, the last values of the array are the largest ones.
    Jerome.

  • Oracle.jbo.JboException: Cannot insert/update Array without context informa

    Hi guys,
    i get this error:
    "oracle.jbo.JboException: Cannot insert/update Array without context information"
    on the line:
    t.commit();
    where
    Transaction t=this.getTransaction();
    Thank you

    Hi,
    this
    +"As soon as page runs , i m getting the below error on server logs and also getting the same error once page page loads , user click on SellectmnayListBOx components on screen ."+
    cannot be the full story you tell. The exception is thrown in the context of a prepareForDML, which is called on entities for the Create / Update and Delete use case. I also see a failed rollback. So there must be something you do before this happens during a page refresh
    Frank

  • How do you create an array of any size(no limits).

    how do you create an array of any size(no limits). this array should hold BigInteger values.
    BigInteger[] array = new BigInteger[100000000]; //creates new array of BigIntegers array[0] = new BigInteger("6"); //puts "6" in
    array[1] = BigInteger.ZERO;
    but this type of an array can only hold a limited amount.

    Use a java.util.List, e.g., ArrayList or LinkedList.

  • How to convert imaq image to a 2D array without vision development module

    Hi,
    I'm looking for a way to convert an Imaq image into a regular picture (2D array) without using "Vision development module", nor saving it to a file (I need a refresh rate of about One frame per second).
    any ideas?
    thanks,
    Gilad.

    Greetings, 
    If instead of attempting to acquire the image as the raw data as per the last example, are you looking for something then like the IMAQ Image to Array? I made some research and initially I believed this VI was part of the Development Module, but I was thinking of the Array to Image VI, which is why I did not bring it up earlier.
    Finally, how exactly will you then be manipulating that array? Or will you simply be interested in displaying it? 
    Cordially;
    Simon P.
    National Instruments
    Applications Engineer

  • Clearing an array without deleting it

    What would be the fastest way of clearing an array without
    deleting it? Could you set all values to null or undefined and it
    would work? For example, say I have an array of 4 numbers: 3, 4, 5,
    6. Now, for some reason I want to clear all the values and set only
    one value, so now I have an array of 1 number with a length of only
    1: 7. How can I do this without deleting the array? Remeber, I only
    want this array to have a length of one, not 4.

    u could try this one may be it should work for ur
    requirements.
    var myArray:Array = new Array(1, 3, 4, 5)
    myArray.length = 1;
    trace(myArray)

  • 1d cluster array replace value in a 1d boolean array (without using Loop)

    Hi ,
    is there a way to replace the values (string , boolean) ​​of a 1D array Cluster with value of 1D boolean array without using loop ?
    Regards
    Simone
    Attachments:
    111.png ‏75 KB

    Replace Array Subset requires that the array elements are type compatible with the elements that you want to replace. That seems not the case in your example.
    And the For Loop is anything but slow. How many billion elements do you expect your array to have to worry about performance of the for loop? With the type definition of your example even a ready made LabVIEW function would have to do internally a for loop too, since the boolean data inside the original array can not be in a continous memory area.
    Maybe if you show us what you try to do with the for loop we can understand better what your concerns are. As it is from the front panel image alone it is really hard to understand what your imagined problem might be.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Error unsupported memory access on variable 'Decoder.number_of_values' which is (or contain) an array with unknown size at compile time

    Dear All,
    I am a new user of Vivado HLS. I want to pass an array of struct to a function and use elements of struct multiple times in a function (read and write). I find this error "error unsupported memory access on variable 'Decoder.number_of_values' which is (or contain) an array with unknown size at compile time " . Kindly can anyone tell that is it an issue of directive? if yes then which directive to use for struct and its element. Struct and function are as follows.
    typedef struct {
    uint32_t number_of_values ;
    uint32_t  address[16];
    uint8_t Processed_bit :1 ;
    uint32_t links[6];
    } Decoder_Fields;
    void Raptor_LT_decode(int To_Send,Decoder_Fields *Decoder){
        int counter=0;
        int i=0,j=0,k=0,x,aaa;
        Raptor_LT_decode_label0:while(counter<To_Send){
            if((Decoder[counter].number_of_values ==1) &&(Decoder[counter].Processed_bit==0) ){
                Decoder[counter].Processed_bit=1;
                Raptor_LT_decode_label1:for (i=0; i<To_Send;i++){
                   Raptor_LT_decode_label2:for (k=0;k<Decoder[i].number_of_values;k++){
                         if (( Decoder[counter].links[0]==Decoder[i].links[k]) && (counter != i)&&       (Decoder[i].number_of_values!= 1)) {
                            Raptor_LT_decode_label3:for (j=0;j<BLOCK_SIZE_BYTES/4;j++){
                                     Decoder[i].address[i]= Decoder[i].address[j] ^ Decoder[counter].address[j];
                            for (x=k;x<Decoder[i].number_of_values-1;x++) Decoder[i].links[x]=Decoder[i].links[x+1];
                                      Decoder[i].number_of_values--;
                counter=0;
            else
                counter++;
     

    Hi ,
    This question is asked on the forum from time to time and should be described in the UG902
    In your top level, Decoder is a pointer; this is not supported as-is as you need to know its size when you do something like Decoder[i].XXXX : the tool need to know how many bits to size the addess bus.
    you need to change Decoder_Fields *Decoder to Decoder_Fields Decoder[YOURSIZE]
    with YOURSIZE that makes sense; in this case the tool will know that it need N=log2(YOURSIZE) to fully address the Decoder array variable.
    next when you solve that and that all is good... the question that you will need to transfer the data of the structs from host memory to your VHLS IP; you need to think about this.
    I hope this helps.

Maybe you are looking for